mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	vim-patch:e73e5b8: runtime(java): Optionally highlight the :: token for method references
This token will be highlighted, similar to the arrow of
lambda expressions, whenever "g:java_highlight_functions" is
defined.
Also:
- Improve the recognition of _switch-case_ labels
  (D-Cysteine).
- Remove insignificant empty statements in syntax test
  files.
closes: vim/vim#15322
References:
https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.13
https://github.com/fleiner/vim/pull/1
e73e5b889b
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Co-authored-by: D-Cysteine <54219287+D-Cysteine@users.noreply.github.com>
			
			
This commit is contained in:
		| @@ -1574,11 +1574,11 @@ use the following: > | |||||||
| 	:let java_highlight_java_io=1 | 	:let java_highlight_java_io=1 | ||||||
| Check the javaid.vim file for a list of all the packages that are supported. | Check the javaid.vim file for a list of all the packages that are supported. | ||||||
|  |  | ||||||
| Function names are not highlighted, as the way to find functions depends on | Headers of indented function declarations can be highlighted (along with parts | ||||||
| how you write Java code.  The syntax file knows two possible ways to highlight | of lambda expressions and method reference expressions), but it depends on how | ||||||
| headers of function declarations: | you write Java code.  Two formats are recognized: | ||||||
|  |  | ||||||
| If you write function declarations that are consistently indented by either | 1) If you write function declarations that are consistently indented by either | ||||||
| a tab, or a space . . . or eight space character(s), you may want to set > | a tab, or a space . . . or eight space character(s), you may want to set > | ||||||
| 	:let java_highlight_functions="indent" | 	:let java_highlight_functions="indent" | ||||||
| 	:let java_highlight_functions="indent1" | 	:let java_highlight_functions="indent1" | ||||||
| @@ -1590,10 +1590,12 @@ a tab, or a space . . . or eight space character(s), you may want to set > | |||||||
| 	:let java_highlight_functions="indent7" | 	:let java_highlight_functions="indent7" | ||||||
| 	:let java_highlight_functions="indent8" | 	:let java_highlight_functions="indent8" | ||||||
| Note that in terms of 'shiftwidth', this is the leftmost step of indentation. | Note that in terms of 'shiftwidth', this is the leftmost step of indentation. | ||||||
| However, if you follow the Java guidelines about how functions and classes are |  | ||||||
| supposed to be named (with respect to upper- and lowercase) and there is any | 2) However, if you follow the Java guidelines about how functions and types | ||||||
| amount of indentation, you may want to set > | are supposed to be named (with respect to upper- and lowercase) and there is | ||||||
|  | any amount of indentation, you may want to set > | ||||||
| 	:let java_highlight_functions="style" | 	:let java_highlight_functions="style" | ||||||
|  |  | ||||||
| In addition, you can combine any value of "java_highlight_functions" with > | In addition, you can combine any value of "java_highlight_functions" with > | ||||||
| 	:let java_highlight_signature=1 | 	:let java_highlight_signature=1 | ||||||
| to have the name of a function with its parameter list parens distinctly | to have the name of a function with its parameter list parens distinctly | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
| " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com> | " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com> | ||||||
| " Former Maintainer:	Claudio Fleiner <claudio@fleiner.com> | " Former Maintainer:	Claudio Fleiner <claudio@fleiner.com> | ||||||
| " Repository:		https://github.com/zzzyxwvut/java-vim.git | " Repository:		https://github.com/zzzyxwvut/java-vim.git | ||||||
| " Last Change:		2024 Jun 22 | " Last Change:		2024 Jul 23 | ||||||
|  |  | ||||||
| " Please check :help java.vim for comments on some of the options available. | " Please check :help java.vim for comments on some of the options available. | ||||||
|  |  | ||||||
| @@ -260,7 +260,7 @@ if exists("java_space_errors") | |||||||
|   endif |   endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
| exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\<default\>\)\@' . s:ff.Peek('7', '') . '<!\s*:"he=e-1' | exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\<default\>\)\@' . s:ff.Peek('7', '') . '<!\s*::\@!"he=e-1' | ||||||
| syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause | syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause | ||||||
| syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<default\>\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline | syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<default\>\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline | ||||||
| " Consider grouped _default_ _case_ labels, i.e. | " Consider grouped _default_ _case_ labels, i.e. | ||||||
| @@ -497,8 +497,12 @@ syn match   javaParenError	 "\]" | |||||||
|  |  | ||||||
| hi def link javaParenError	javaError | hi def link javaParenError	javaError | ||||||
|  |  | ||||||
| " Lambda expressions (JLS-17, §15.27). | " Lambda expressions (JLS-17, §15.27) and method references (JLS-17, | ||||||
|  | " §15.13). | ||||||
| if exists("java_highlight_functions") | if exists("java_highlight_functions") | ||||||
|  |   syn match javaMethodRef ":::\@!" | ||||||
|  |   hi def link javaMethodRef javaFuncDef | ||||||
|  |  | ||||||
|   if exists("java_highlight_signature") |   if exists("java_highlight_signature") | ||||||
|     let s:ff.LambdaDef = s:ff.LeftConstant |     let s:ff.LambdaDef = s:ff.LeftConstant | ||||||
|   else |   else | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Christian Clason
					Christian Clason