clojure-vim / clojure.vim

Clojure syntax highlighting and indentation for Vim and Neovim.
Other
35 stars 6 forks source link

Highlight `clojure.test` macros #25

Open Invertisment opened 2 years ago

Invertisment commented 2 years ago

I import them frequently and probably everyone does. It would probably be a good idea.

I think this should work but I don't know why it doesn't work (also you use a generator and probably don't even need this):

syntax keyword clojureTestMacro deftest is
highlight link clojureTestMacro clojureMacro
axvr commented 2 years ago

I believe highlighting of clojure.test was intentionally left out in vim-clojure-static, but I can't remember the reason for it. Although I do agree that it would make sense to add it. I'll think about if/how to do it...

Invertisment commented 2 years ago

I actually think that functions shouldn't be highlighted at all. This way they would be consistent. So I don't really understand why would one want to highlight the stdlib. I haven't seen this for Java or JS. Probably it would be better to highlight the first symbol of an unquoted list instead. But you already do highlight symbols. Also I'm not sure why would one highlight stdlib macros too.

axvr commented 2 years ago

That is something I've been considering too. I definitely agree (+ it would make the code much simpler) but I'm just not sure what the majority of users prefer...

Perhaps if there were config option to turn on/off special highlighting of clojure.core functions?

SevereOverfl0w commented 2 years ago

The reason to highlight differently is because it lets us identify which calls are macros (equivalent to java's built-ins) and which are functions.

Clojure makes them syntactically identical other languages do not.

Invertisment commented 2 years ago

It's fine if we can detect the macro, then we can highlight it. But this plugin doesn't detect macros -- instead it has a hardcoded list of keywords that I can redefine to be whatever I want. I think that CIDER doesn't do that too. It does highlight the deftest when I start the REPL but it doesn't highlight -> and or :thinking:

Invertisment commented 2 years ago

Is it possible to highlight macros according to a value of a global variable that would be changed by a third party plugin? :thinking:

SevereOverfl0w commented 2 years ago

I believe there are plugins which do exactly that, https://github.com/guns/vim-clojure-highlight and its various forks.