From e7a16f5484b74e49dc51a4a0db81566565eae105 Mon Sep 17 00:00:00 2001 From: Martin Bielik Date: Mon, 10 Apr 2023 10:29:00 +0200 Subject: chat options highlighting --- ftplugin/aichat.vim | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'ftplugin') diff --git a/ftplugin/aichat.vim b/ftplugin/aichat.vim index 33b8141..54c022e 100644 --- a/ftplugin/aichat.vim +++ b/ftplugin/aichat.vim @@ -68,6 +68,21 @@ function! s:MarkdownHighlightSources(force) endfor endfunction +function! s:MarkdownHighlightChatOptions(force) + " use jproperties syntax to highlight chat options + let filetype = 'jproperties' + if a:force || !has_key(b:aichat_known_filetypes, filetype) + if !has_key(b:aichat_included_filetypes, filetype) + let include = s:SyntaxInclude(filetype) + let b:aichat_included_filetypes[filetype] = 1 + else + let include = '@' . toupper(filetype) + endif + syntax region aichatOptions start="\[chat-options\]" end="^$" contains=@JPROPERTIES + let b:aichat_known_filetypes[filetype] = 1 + endif +endfunction + function! s:SyntaxInclude(filetype) " Include the syntax highlighting of another {filetype}. let grouplistname = '@' . toupper(a:filetype) @@ -92,7 +107,6 @@ function! s:SyntaxInclude(filetype) return grouplistname endfunction - function! s:IsHighlightSourcesEnabledForBuffer() " Enable for markdown buffers, and for liquid buffers with markdown format return &filetype =~# 'aichat' || get(b:, 'liquid_subtype', '') =~# 'aichat' @@ -101,7 +115,9 @@ endfunction function! s:MarkdownRefreshSyntax(force) if g:vim_ai_chat_default['ui']['code_syntax_enabled'] && &filetype =~# 'aichat' call s:MarkdownHighlightSources(a:force) + call s:MarkdownHighlightChatOptions(a:force) endif + endfunction function! s:MarkdownClearSyntaxVariables() -- cgit v1.2.3