summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorGregory Anders <greg@gpanders.com>2024-05-08 20:17:43 +0200
committerChristian Brabandt <cb@256bit.org>2024-05-08 20:17:43 +0200
commit6a4ea471d28107c4078e106ace1bdc0c54bf946b (patch)
tree82ef6d3fbf9455af031d9bbf30eae90d4db3433b /runtime
parentb8ecedce79149ac6b994177e9a68979f86065cb1 (diff)
patch 9.1.0396: filetype: jj files are not recognizedv9.1.0396
Problem: jj files are not recognized Solution: recognize '*.jjdescription' files as jj filetype (Gregory Anders) See: https://github.com/martinvonz/jj closes: #14733 Signed-off-by: Gregory Anders <greg@gpanders.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'runtime')
-rw-r--r--runtime/filetype.vim3
-rw-r--r--runtime/ftplugin/jj.vim19
-rw-r--r--runtime/syntax/jj.vim20
3 files changed, 42 insertions, 0 deletions
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 927230d4ff..f45866cb82 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1148,6 +1148,9 @@ au BufNewFile,BufRead *.clp setf jess
" Jgraph
au BufNewFile,BufRead *.jgr setf jgraph
+" Jujutsu
+au BufNewFile,BufRead *.jjdescription setf jj
+
" Jovial
au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial
diff --git a/runtime/ftplugin/jj.vim b/runtime/ftplugin/jj.vim
new file mode 100644
index 0000000000..cc5d700a30
--- /dev/null
+++ b/runtime/ftplugin/jj.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin
+" Language: jj description
+" Maintainer: Gregory Anders <greg@gpanders.com>
+" Last Change: 2024 May 8
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+" Use the same formatoptions and textwidth as the gitcommit ftplugin
+setlocal nomodeline formatoptions+=tl textwidth=72
+setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q formatoptions+=n
+setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}]\\s\\+\\\|^\\s*[-*+]\\s\\+
+
+setlocal comments=b:JJ:
+setlocal commentstring=JJ:\ %s
+
+let b:undo_ftplugin = 'setl modeline< formatoptions< textwidth< formatlistpat< comments< commentstring<'
diff --git a/runtime/syntax/jj.vim b/runtime/syntax/jj.vim
new file mode 100644
index 0000000000..a2911a0268
--- /dev/null
+++ b/runtime/syntax/jj.vim
@@ -0,0 +1,20 @@
+" Vim syntax file
+" Language: jj description
+" Maintainer: Gregory Anders <greg@gpanders.com>
+" Last Change: 2024 May 8
+
+if exists('b:current_syntax')
+ finish
+endif
+let b:current_syntax = 'jj'
+
+syn match jjAdded "A .*" contained
+syn match jjRemoved "D .*" contained
+syn match jjChanged "M .*" contained
+
+syn region jjComment start="^JJ: " end="$" contains=jjAdded,jjRemoved,jjChanged
+
+hi def link jjComment Comment
+hi def link jjAdded Added
+hi def link jjRemoved Removed
+hi def link jjChanged Changed