LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

Подсветит varr как переменную?

Да, если сконфигурировать линтер (clj-kondo), который clojure-lsp использует под капотом (можно использовать его отдельно, например, в конвейере CI). Унихвай, понемаешь.

Изначально в этом коде

(ns dev.1brc)

(defmacro mydef [a v]
  `(def ~a ~v))

(mydef varr 123)

varr

все упоминания varr будет подчёркнуты как ошибка по причине clj-kondo [unresolved-symbol]: Unresolved symbol: varr

Если добавить правило в конфиг линтера (на уровне системы, пользователя или проекта) — ошибка пропадёт:

;; my-project/.clj-kondo/config.edn
{:lint-as {dev.1brc/mydef clojure.core/def}}

Кладём конфиг в гит, профит. (clojure-lsp автоматически находит и применяет эти конфиги для зависимостей, в которых они есть.)

Исправление Nervous, :

Подсветит varr как переменную?

Да, если сконфигурировать линтер (clj-kondo), который clojure-lsp использует под капотом (можно использовать его отдельно, например, в конвейере CI). Унихвай, понемаешь.

Изначально в этом коде

(ns dev.1brc)

(defmacro mydef [a v]
  `(def ~a ~v))

(mydef varr 123)

varr

все упоминания varr будет подчёркнуты как ошибка по причине clj-kondo [unresolved-symbol]: Unresolved symbol: varr

Если добавить правило в конфиг линтера (на уровне системы, пользователя или проекта) — ошибка пропадёт:

;; my-project/.clj-kondo/config.edn
{:lint-as {dev.1brc/mydef clojure.core/def}}

Кладём конфиг в гит, профит.

Исходная версия Nervous, :

Подсветит varr как переменную?

Да, если сконфигурировать линтер (clj-kondo), который clojure-lsp использует под капотом (можно использовать его отдельно, например, в конвейере CI). Унихвай, понемаешь.

Изначально в этом коде

(ns dev.1brc)

(defmacro mydef [a v]
  `(def ~a ~v))

(mydef varr 123)

varr

все упоминания varr будет подчёркнуты как ошибка по причине clj-kondo [unresolved-symbol]: Unresolved symbol: varr

Если добавить правило в конфиг линтера (на уровне системы, пользователя или проекта) — ошибка пропадёт:

{:lint-as {dev.1brc/mydef clojure.core/def}}