mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-11 13:03:50 -05:00
Add dhall, closes #426
This commit is contained in:
@@ -10,7 +10,7 @@ A collection of language packs for Vim.
|
|||||||
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
||||||
|
|
||||||
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
||||||
- It **installs and updates 120+ times faster** than the <!--Package Count-->145<!--/Package Count--> packages it consists of.
|
- It **installs and updates 120+ times faster** than the <!--Package Count-->146<!--/Package Count--> packages it consists of.
|
||||||
- Solid syntax and indentation support (other features skipped). Only the best language packs.
|
- Solid syntax and indentation support (other features skipped). Only the best language packs.
|
||||||
- All unnecessary files are ignored (like enormous documentation from php support).
|
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||||
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
||||||
@@ -68,6 +68,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
|||||||
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin)
|
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin)
|
||||||
- [cue](https://github.com/mgrabovsky/vim-cuesheet) (syntax)
|
- [cue](https://github.com/mgrabovsky/vim-cuesheet) (syntax)
|
||||||
- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, autoload, ftplugin)
|
- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, autoload, ftplugin)
|
||||||
|
- [dhall](https://github.com/vmchale/dhall-vim) (syntax, ftplugin)
|
||||||
- [dlang](https://github.com/JesseKPhillips/d.vim) (syntax, indent)
|
- [dlang](https://github.com/JesseKPhillips/d.vim) (syntax, indent)
|
||||||
- [dockerfile](https://github.com/ekalinin/Dockerfile.vim) (syntax, indent, ftplugin)
|
- [dockerfile](https://github.com/ekalinin/Dockerfile.vim) (syntax, indent, ftplugin)
|
||||||
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, autoload, ftplugin)
|
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, autoload, ftplugin)
|
||||||
|
|||||||
17
after/syntax/haskell.vim
Normal file
17
after/syntax/haskell.vim
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dhall') != -1
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" store and remove current syntax value
|
||||||
|
let old_syntax = b:current_syntax
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn include @dhall syntax/dhall.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn region dhallBlock matchgroup=quasiQuote start=/\[\$\?staticDhallExpression|/ end=/|\]/ contains=@dhall
|
||||||
|
|
||||||
|
hi def link quasiQuote Underlined
|
||||||
|
|
||||||
|
" restore current syntax value
|
||||||
|
let b:current_syntax = old_syntax
|
||||||
1
build
1
build
@@ -178,6 +178,7 @@ PACKS="
|
|||||||
cucumber:tpope/vim-cucumber
|
cucumber:tpope/vim-cucumber
|
||||||
cue:mgrabovsky/vim-cuesheet
|
cue:mgrabovsky/vim-cuesheet
|
||||||
dart:dart-lang/dart-vim-plugin
|
dart:dart-lang/dart-vim-plugin
|
||||||
|
dhall:vmchale/dhall-vim
|
||||||
dlang:JesseKPhillips/d.vim
|
dlang:JesseKPhillips/d.vim
|
||||||
dockerfile:ekalinin/Dockerfile.vim
|
dockerfile:ekalinin/Dockerfile.vim
|
||||||
elixir:elixir-lang/vim-elixir
|
elixir:elixir-lang/vim-elixir
|
||||||
|
|||||||
@@ -289,6 +289,15 @@ autocmd BufRead,BufNewFile *.dart set filetype=dart
|
|||||||
augroup end
|
augroup end
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dhall') == -1
|
||||||
|
augroup filetypedetect
|
||||||
|
" dhall, from dhall.vim in vmchale/dhall-vim
|
||||||
|
augroup dhall
|
||||||
|
autocmd BufNewFile,BufRead *.dhall set filetype=dhall
|
||||||
|
augroup END
|
||||||
|
augroup end
|
||||||
|
endif
|
||||||
|
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dlang') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dlang') == -1
|
||||||
augroup filetypedetect
|
augroup filetypedetect
|
||||||
" dlang, from d.vim in JesseKPhillips/d.vim
|
" dlang, from d.vim in JesseKPhillips/d.vim
|
||||||
|
|||||||
39
ftplugin/dhall.vim
Normal file
39
ftplugin/dhall.vim
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dhall') != -1
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists('b:dhall_ftplugin')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:dhall_ftplugin = 1
|
||||||
|
|
||||||
|
setlocal commentstring=--\ %s
|
||||||
|
|
||||||
|
set smarttab
|
||||||
|
|
||||||
|
if exists('g:dhall_use_ctags')
|
||||||
|
if g:dhall_use_ctags == 1
|
||||||
|
augroup dhall
|
||||||
|
autocmd BufWritePost *.dhall silent !ctags -R .
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
function! StripTrailingWhitespace()
|
||||||
|
let myline=line('.')
|
||||||
|
let mycolumn = col('.')
|
||||||
|
exec 'silent %s/ *$//'
|
||||||
|
call cursor(myline, mycolumn)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
if exists('g:dhall_strip_whitespace')
|
||||||
|
if g:dhall_strip_whitespace == 1
|
||||||
|
augroup dhall
|
||||||
|
au BufWritePre *.dhall silent! call StripTrailingWhitespace()
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
augroup dhall
|
||||||
|
au BufNewFile,BufRead *.dhall setl shiftwidth=2
|
||||||
|
augroup END
|
||||||
66
syntax/dhall.vim
Normal file
66
syntax/dhall.vim
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dhall') != -1
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
scriptencoding utf-8
|
||||||
|
|
||||||
|
if exists('b:current_syntax')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syntax match dhallInterpolation "\v\$\{[^\}]*\}"
|
||||||
|
syntax keyword dhallTodo TODO FIXME
|
||||||
|
syntax match dhallBrackets "[<>|]"
|
||||||
|
syntax match dhallOperator "+\|*\|#"
|
||||||
|
syntax match dhallOperator "//\|⫽"
|
||||||
|
syntax match dhallOperator "/\\\|∧"
|
||||||
|
syntax match dhallOperator "//\\\\\|⩓"
|
||||||
|
syntax match dhallNumber "\v[0-9]"
|
||||||
|
syntax match dhallNumber "\v\+[0-9]"
|
||||||
|
syntax match dhallIndex "\v\@[0-9]+" contains=dhallNumber
|
||||||
|
syntax match dhallLambda "∀\|λ\|→\|->\|\\"
|
||||||
|
syntax match dhallType "\v[A-Z][a-z0-9A-Z_]*"
|
||||||
|
syntax match dhallSpecialLabel "\v`[A-Z][a-z]*`"
|
||||||
|
syntax match dhallLabel "\v[A-Z][a-z]*/[a-z_][A-Za-z0-9\.\-]*"
|
||||||
|
syntax match dhallLabel "\v[a-z_][A-Za-z0-9\-]*"
|
||||||
|
syntax match dhallType "\v[a-zA-Z]+\.[A-Z][a-z0-9A-Z_]*"
|
||||||
|
syntax match dhallParens "(\|)\|\[\|\]\|,"
|
||||||
|
syntax match dhallRecord "{\|}\|:"
|
||||||
|
syntax keyword dhallKeyword let in forall constructors if then else merge env as
|
||||||
|
syntax match dhallEsc +\\["\\abfnrtv$/]+
|
||||||
|
syntax match dhallSingleSpecial +'''+
|
||||||
|
syntax match dhallSingleSpecial +''${+
|
||||||
|
syntax match dhallComment '\v--.*$' contains=@Spell,dhallTodo
|
||||||
|
syntax region dhallMultilineComment start="{-" end="-}" contains=@Spell,dhallTodo,dhallMultilineComment
|
||||||
|
syntax match dhallUrl "https://[a-zA-Z0-9/.\-_\?\=\&]*"
|
||||||
|
syntax match dhallUrl "http://[a-zA-Z0-9/.\-_\?\=\&]*"
|
||||||
|
syntax match dhallUrl "/[a-zA-Z0-9/.\-_]*"
|
||||||
|
syntax match dhallUrl "\.\./[a-zA-Z0-9/.\-_]*"
|
||||||
|
syntax match dhallUrl "\./[a-zA-Z0-9/.\-_]*"
|
||||||
|
syntax region dhallString start=+''+ end=+''+ contains=@Spell,dhallInterpolation,dhallSingleSpecial
|
||||||
|
syntax region dhallString start=+"+ end=+"+ contains=dhallInterpolation,dhallEsc
|
||||||
|
syntax region dhallString start=+"/+ end=+"+ contains=dhallInterpolation,dhallEsc
|
||||||
|
syntax keyword dhallBool True False
|
||||||
|
|
||||||
|
highlight link dhallSingleSpecial Special
|
||||||
|
highlight link dhallIndex Special
|
||||||
|
highlight link dhallSpecialLabel Operator
|
||||||
|
highlight link dhallEsc Special
|
||||||
|
highlight link dhallInterpolation Special
|
||||||
|
highlight link dhallTodo Todo
|
||||||
|
highlight link dhallBrackets Operator
|
||||||
|
highlight link dhallBool Underlined
|
||||||
|
highlight link dhallUrl String
|
||||||
|
highlight link dhallOperator Operator
|
||||||
|
highlight link dhallNumber Number
|
||||||
|
highlight link dhallLambda Special
|
||||||
|
highlight link dhallString String
|
||||||
|
highlight link dhallLabel Identifier
|
||||||
|
highlight link dhallRecord Special
|
||||||
|
highlight link dhallKeyword Keyword
|
||||||
|
highlight link dhallType Structure
|
||||||
|
highlight link dhallParens Special
|
||||||
|
highlight link dhallComment Comment
|
||||||
|
highlight link dhallMultilineComment Comment
|
||||||
|
|
||||||
|
let b:current_syntax = 'dhall'
|
||||||
Reference in New Issue
Block a user