-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
patch 9.1.0995: filetype: shaderslang files are not detected
Problem: filetype: shaderslang files are not detected Solution: detect '*.slang' files as shaderslang filetype, include a filetype and syntax script (mtvare6) Reference: https://shader-slang.com/ closes: #16387 Signed-off-by: mtvare6 <mtvare6@proton.me> Signed-off-by: Christian Brabandt <cb@256bit.org>
- Loading branch information
Showing
6 changed files
with
423 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
" Vim filetype plugin file | ||
" Language: Slang | ||
" Maintainer: Austin Shijo <epestr@proton.me> | ||
" Last Change: 2025 Jan 05 | ||
|
||
" Only do this when not done yet for this buffer | ||
if exists("b:did_ftplugin") | ||
finish | ||
endif | ||
|
||
" Don't load another plugin for this buffer | ||
let b:did_ftplugin = 1 | ||
|
||
" Using line continuation here. | ||
let s:cpo_save = &cpo | ||
set cpo-=C | ||
|
||
let b:undo_ftplugin = "setl fo< com< cms< inc<" | ||
|
||
" Set 'formatoptions' to break comment lines but not other lines, | ||
" and insert the comment leader when hitting <CR> or using "o". | ||
setlocal fo-=t fo+=croql | ||
|
||
" Set comment string (Slang uses C-style comments) | ||
setlocal commentstring=//\ %s | ||
|
||
" Set 'comments' to format dashed lists in comments | ||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,:// | ||
|
||
" When the matchit plugin is loaded, this makes the % command skip parens and | ||
" braces in comments properly, and adds support for shader-specific keywords | ||
if exists("loaded_matchit") | ||
" Add common shader control structures | ||
let b:match_words = '{\|^\s*\<\(if\|for\|while\|switch\|struct\|class\)\>:}\|^\s*\<break\>,' .. | ||
\ '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>,' .. | ||
\ '\[:\]' | ||
let b:match_skip = 's:comment\|string\|character\|special' | ||
let b:match_ignorecase = 0 | ||
let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words b:match_ignorecase" | ||
endif | ||
|
||
" Win32 and GTK can filter files in the browse dialog | ||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") | ||
let b:browsefilter = "Slang Source Files (*.slang)\t*.slang\n" | ||
if has("win32") | ||
let b:browsefilter ..= "All Files (*.*)\t*\n" | ||
else | ||
let b:browsefilter ..= "All Files (*)\t*\n" | ||
endif | ||
let b:undo_ftplugin ..= " | unlet! b:browsefilter" | ||
endif | ||
|
||
let &cpo = s:cpo_save | ||
unlet s:cpo_save |
Oops, something went wrong.