aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/ftplugin/jj.vim19
-rw-r--r--runtime/lua/vim/filetype.lua1
-rw-r--r--runtime/syntax/jj.vim20
-rw-r--r--test/old/testdir/test_filetype.vim1
4 files changed, 41 insertions, 0 deletions
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/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua
index 3b7ea03c2d..1ea1bbccf6 100644
--- a/runtime/lua/vim/filetype.lua
+++ b/runtime/lua/vim/filetype.lua
@@ -570,6 +570,7 @@ local extension = {
jsx = 'javascriptreact',
clp = 'jess',
jgr = 'jgraph',
+ jjdescription = 'jj',
j73 = 'jovial',
jov = 'jovial',
jovial = 'jovial',
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
diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim
index 174eb333d9..3dd3db512a 100644
--- a/test/old/testdir/test_filetype.vim
+++ b/test/old/testdir/test_filetype.vim
@@ -360,6 +360,7 @@ func s:GetFilenameChecks() abort
\ 'javascriptreact': ['file.jsx'],
\ 'jess': ['file.clp'],
\ 'jgraph': ['file.jgr'],
+ \ 'jj': ['file.jjdescription'],
\ 'jq': ['file.jq'],
\ 'jovial': ['file.jov', 'file.j73', 'file.jovial'],
\ 'jproperties': ['file.properties', 'file.properties_xx', 'file.properties_xx_xx', 'some.properties_xx_xx_file', 'org.eclipse.xyz.prefs'],