changeset 35132:5c53c1c0012a v9.1.0396

patch 9.1.0396: filetype: jj files are not recognized Commit: https://github.com/vim/vim/commit/6a4ea471d28107c4078e106ace1bdc0c54bf946b Author: Gregory Anders <greg@gpanders.com> Date: Wed May 8 20:17:43 2024 +0200 patch 9.1.0396: filetype: jj files are not recognized 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>
author Christian Brabandt <cb@256bit.org>
date Wed, 08 May 2024 20:30:04 +0200
parents d95c42df4444
children b656220c1801
files .github/MAINTAINERS runtime/filetype.vim runtime/ftplugin/jj.vim runtime/syntax/jj.vim src/testdir/test_filetype.vim src/version.c
diffstat 6 files changed, 47 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -161,6 +161,7 @@ runtime/ftplugin/j.vim			@glts
 runtime/ftplugin/java.vim		@zzzyxwvut
 runtime/ftplugin/javascript.vim		@dkearns
 runtime/ftplugin/javascriptreact.vim	@dkearns
+runtime/ftplugin/jj.vim			@gpanders
 runtime/ftplugin/json.vim		@dbarnett
 runtime/ftplugin/json5.vim		@dkearns
 runtime/ftplugin/jsonc.vim		@izhakjakov
@@ -406,6 +407,7 @@ runtime/syntax/j.vim			@glts
 runtime/syntax/jargon.vim		@h3xx
 runtime/syntax/java.vim			@zzzyxwvut
 runtime/syntax/javascript.vim		@fleiner
+runtime/syntax/jj.vim			@gpanders
 runtime/syntax/json.vim		        @vito-c
 runtime/syntax/jsonc.vim		@izhakjakov
 runtime/syntax/julia.vim		@carlobaldassi
--- 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
 
new file mode 100644
--- /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<'
new file mode 100644
--- /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
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -359,6 +359,7 @@ def s:GetFilenameChecks(): dict<list<str
     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'],
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    396,
+/**/
     395,
 /**/
     394,