forked from aniani/vim
		
	patch 9.1.0875: filetype: hyprlang detection can be improved
Problem:  filetype: hyprlang detection can be improved
Solution: detect '/hypr/*.conf' files as hyprlang filetype,
          include basic syntax highlighting (Luca Saccarola)
fixes: #15875
closes: #16064
Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Christian Brabandt
					
				
			
			
				
	
			
			
			
						parent
						
							fdac54d7bb
						
					
				
				
					commit
					a13bd294ab
				
			@@ -1099,8 +1099,8 @@ au BufRead,BufNewFile *.hurl			setf hurl
 | 
			
		||||
" Hyper Builder
 | 
			
		||||
au BufNewFile,BufRead *.hb			setf hb
 | 
			
		||||
 | 
			
		||||
" Hyprlang
 | 
			
		||||
au BufNewFile,BufRead hypr\(land\|paper\|idle\|lock\).conf	setf hyprlang
 | 
			
		||||
" Hyprland Configuration language
 | 
			
		||||
au BufNewFile,BufRead */hypr/*.conf,hypr\(land\|paper\|idle\|lock\).conf setf hyprlang
 | 
			
		||||
 | 
			
		||||
" Httest
 | 
			
		||||
au BufNewFile,BufRead *.htt,*.htb		setf httest
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										58
									
								
								runtime/syntax/hyprlang.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								runtime/syntax/hyprlang.vim
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
" Vim syntax file
 | 
			
		||||
" Language:     hyprlang
 | 
			
		||||
" Maintainer:   Luca Saccarola <github.e41mv@aleeas.com>
 | 
			
		||||
" Last Change:  2024 nov 15
 | 
			
		||||
 | 
			
		||||
if exists("b:current_syntax")
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let b:current_syntax = "hyprlang"
 | 
			
		||||
 | 
			
		||||
syn case ignore
 | 
			
		||||
 | 
			
		||||
syn match hyprCommand '^\s*\zs\S\+\ze\s*=' contains=hyprVariable
 | 
			
		||||
syn match hyprValue '=\s*\zs.\+\ze$' contains=hyprNumber,hyprFloat,hyprBoolean,hyprString,hyprColor,hyprModifier,hyprVariable,hyprComment
 | 
			
		||||
 | 
			
		||||
syn match hyprVariable '\$\w\+' contained
 | 
			
		||||
 | 
			
		||||
" Category
 | 
			
		||||
syn region hyprCategory matchgroup=hyprCategoryD start='^\s*\k\+\s*{' end='^\s*}' contains=hyprCommand,hyprValue,hyprComment,hyprCategory,hyprCategoryD
 | 
			
		||||
 | 
			
		||||
" Variables Types
 | 
			
		||||
syn match   hyprNumber  '\%[-+]\<\d\+\>\%[%]' contained
 | 
			
		||||
syn match   hyprFloat   '\%[-+]\<\d\+\.\d\+\>\%[%]' contained
 | 
			
		||||
syn match   hyprString  '["\'].*["\']' contained
 | 
			
		||||
syn match   hyprColor   'rgb(\(\w\|\d\)\{6})' contained
 | 
			
		||||
syn match   hyprColor   'rgba(\(\w\|\d\)\{8})' contained
 | 
			
		||||
syn match   hyprColor   '0x\(\w\|\d\)\{8}' contained
 | 
			
		||||
syn keyword hyprBoolean true false yes no on off contained
 | 
			
		||||
 | 
			
		||||
"               Super         Shift         Alt         Ctrl        Control
 | 
			
		||||
syn keyword hyprModifier contained
 | 
			
		||||
      \ super                 supershift    superalt    superctrl   supercontrol
 | 
			
		||||
      \                       super_shift   super_alt   super_ctrl  super_control
 | 
			
		||||
      \ shift   shiftsuper                  shiftalt    shiftctrl   shiftcontrol
 | 
			
		||||
      \         shift_super                 shift_alt   shift_ctrl  shift_control
 | 
			
		||||
      \ alt     altsuper      altshift                  altctrl     altcontrol
 | 
			
		||||
      \         alt_super     alt_shift                 alt_ctrl    alt_control
 | 
			
		||||
      \ ctrl    ctrlsuper     ctrlshift     ctrlalt                 ctrlcontrol
 | 
			
		||||
      \         ctrl_super    ctrl_shift    ctrl_alt                ctrl_control
 | 
			
		||||
      \ control controlsuper  controlshift  controlalt  controlctrl
 | 
			
		||||
      \         control_super control_shift control_alt control_ctrl
 | 
			
		||||
 | 
			
		||||
" Comments
 | 
			
		||||
syn match hyprComment '#.*$'
 | 
			
		||||
 | 
			
		||||
" Link to default groups
 | 
			
		||||
hi def link hyprVariable  Identifier
 | 
			
		||||
hi def link hyprCategoryD Special
 | 
			
		||||
hi def link hyprComment   Comment
 | 
			
		||||
hi def link hyprNumber    Constant
 | 
			
		||||
hi def link hyprModifier  Constant
 | 
			
		||||
hi def link hyprFloat     hyprNumber
 | 
			
		||||
hi def link hyprBoolean   Boolean
 | 
			
		||||
hi def link hyprString    String
 | 
			
		||||
hi def link hyprColor     Structure
 | 
			
		||||
hi def link hyprCommand   Keyword
 | 
			
		||||
 | 
			
		||||
" vim: ts=8 sts=2 sw=2 et
 | 
			
		||||
@@ -354,7 +354,7 @@ def s:GetFilenameChecks(): dict<list<string>>
 | 
			
		||||
    htmlm4: ['file.html.m4'],
 | 
			
		||||
    httest: ['file.htt', 'file.htb'],
 | 
			
		||||
    hurl: ['file.hurl'],
 | 
			
		||||
    hyprlang: ['hyprlock.conf', 'hyprland.conf', 'hypridle.conf', 'hyprpaper.conf'],
 | 
			
		||||
    hyprlang: ['hyprlock.conf', 'hyprland.conf', 'hypridle.conf', 'hyprpaper.conf', '/hypr/foo.conf'],
 | 
			
		||||
    i3config: ['/home/user/.i3/config', '/home/user/.config/i3/config', '/etc/i3/config', '/etc/xdg/i3/config'],
 | 
			
		||||
    ibasic: ['file.iba', 'file.ibi'],
 | 
			
		||||
    icemenu: ['/.icewm/menu', 'any/.icewm/menu'],
 | 
			
		||||
 
 | 
			
		||||
@@ -704,6 +704,8 @@ static char *(features[]) =
 | 
			
		||||
 | 
			
		||||
static int included_patches[] =
 | 
			
		||||
{   /* Add new patch number below this line */
 | 
			
		||||
/**/
 | 
			
		||||
    875,
 | 
			
		||||
/**/
 | 
			
		||||
    874,
 | 
			
		||||
/**/
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user