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:
Luca Saccarola
2024-11-19 20:43:52 +01:00
committed by Christian Brabandt
parent fdac54d7bb
commit a13bd294ab
4 changed files with 63 additions and 3 deletions

View File

@ -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

View 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

View File

@ -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'],

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
875,
/**/
874,
/**/