Occasionally I want to override the default syntax highlighting colours and styles with my own preferences.I imagine the most appropriate way to do this would be to create my own colorscheme.  However I have a couple of questions.If I want to set a highlight for a specific syntax group in a specific language, does this belong in my colorscheme, or would it be better to place it in after/syntax/[filetype].vim?highlight jsAssignExpIdent cterm=bold gui=boldIt seems a little odd to place obscure language-specific rules in the colorscheme, as they will be loaded whatever language I am working on, but it seems even worse to place highlight rules in the syntax file.Sometimes I create new syntax rules for a specific language, in after/syntax/[filetype].vim. In case other users want to employ these extensions, would it be appropriate for me to provide default highlight rules there which link to common default highlight groups? If another user wants to override that highlight colour, how should they do that?::::: after/syntax/asm.vim :::::syn match asmHexNumber /\(0x\|\$\)[0-9A-Fa-f]\+/highlight default link asmHexNumber Number
Where do custom highlighting rules belong?
syntax highlighting;highlight
First questionHighlight definitions belong to your colorscheme. The fact that they are loaded for every buffer, no matter what their language, shouldn't be a problem at all.If you don't want to edit your colorscheme, you can put those highlight definitions in plugin/myhighlights.vim:function! MyHighlights()    highlight ...    highlight ...endfunctionaugroup MyHighlights    autocmd!    autocmd ColorScheme * call MyHighlights()augroup ENDSecond questionYour sample is exactly how you should do and how every syntax script does. This method lets the plugin developer define sane default without forcing specific colors down their user's throat.