This commit is contained in:
Adam Stankiewicz
2020-09-15 10:45:50 +02:00
parent 4314841aa4
commit d43d269bed
8 changed files with 34 additions and 16 deletions

View File

@@ -26,6 +26,16 @@ if has("comments")
setlocal commentstring=//\ %s setlocal commentstring=//\ %s
endif endif
if has('find_in_path')
let &l:includeexpr='substitute(v:fname, "^([^.])$", "\1.zig", "")'
let &l:include='\v(\@import>|\@cInclude>|^\s*\#\s*include)'
let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
endif
if has('eval')
execute 'setlocal path+=' . json_decode(system('zig env'))['std_dir']
endif
let b:undo_ftplugin = "setl et< ts< sts< sw< fo< sua< mp< com< cms<" let b:undo_ftplugin = "setl et< ts< sts< sw< fo< sua< mp< com< cms<"
let &cpo = s:cpo_orig let &cpo = s:cpo_orig

View File

@@ -6,7 +6,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'erlang') == -1
" Contributors: Edwin Fine <efine145_nospam01 at usa dot net> " Contributors: Edwin Fine <efine145_nospam01 at usa dot net>
" Pawel 'kTT' Salata <rockplayer.pl@gmail.com> " Pawel 'kTT' Salata <rockplayer.pl@gmail.com>
" Ricardo Catalinas Jiménez <jimenezrick@gmail.com> " Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
" Last Update: 2017-Feb-28 " Last Update: 2020-Jun-11
" License: Vim license " License: Vim license
" URL: https://github.com/vim-erlang/vim-erlang-runtime " URL: https://github.com/vim-erlang/vim-erlang-runtime

View File

@@ -45,6 +45,10 @@ endif
let s:cpo_save = &cpoptions let s:cpo_save = &cpoptions
set cpoptions&vim set cpoptions&vim
" searchpair() skip expression that matches in comments and strings.
let s:pair_skip_expr =
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "comment\\|string"'
" Check if the character at lnum:col is inside a string. " Check if the character at lnum:col is inside a string.
function s:InString(lnum, col) function s:InString(lnum, col)
return synIDattr(synID(a:lnum, a:col, 1), 'name') ==# 'graphqlString' return synIDattr(synID(a:lnum, a:col, 1), 'name') ==# 'graphqlString'
@@ -61,18 +65,18 @@ function GetGraphQLIndent()
let l:line = getline(v:lnum) let l:line = getline(v:lnum)
" If this line contains just a closing bracket, find its matching opening " If this line contains just a closing bracket, find its matching opening
" bracket and indent the closing backet to match. " bracket and indent the closing bracket to match.
let l:col = matchend(l:line, '^\s*[]})]') let l:col = matchend(l:line, '^\s*[]})]')
if l:col > 0 && !s:InString(v:lnum, l:col) if l:col > 0 && !s:InString(v:lnum, l:col)
let l:bracket = l:line[l:col - 1]
call cursor(v:lnum, l:col) call cursor(v:lnum, l:col)
if l:bracket is# '}' let l:bracket = l:line[l:col - 1]
let l:matched = searchpair('{', '', '}', 'bW') if l:bracket ==# '}'
elseif l:bracket is# ']' let l:matched = searchpair('{', '', '}', 'bW', s:pair_skip_expr)
let l:matched = searchpair('\[', '', '\]', 'bW') elseif l:bracket ==# ']'
elseif l:bracket is# ')' let l:matched = searchpair('\[', '', '\]', 'bW', s:pair_skip_expr)
let l:matched = searchpair('(', '', ')', 'bW') elseif l:bracket ==# ')'
let l:matched = searchpair('(', '', ')', 'bW', s:pair_skip_expr)
else else
let l:matched = -1 let l:matched = -1
endif endif
@@ -85,9 +89,8 @@ function GetGraphQLIndent()
return indent(v:lnum) return indent(v:lnum)
endif endif
" If the previous line contained an opening bracket, and we are still in it, " If the previous line ended with an opening bracket, indent this line.
" add indent depending on the bracket type. if getline(l:prevlnum) =~# '\%(#.*\)\@<![[{(]\s*$'
if getline(l:prevlnum) =~# '[[{(]\s*$'
return indent(l:prevlnum) + shiftwidth() return indent(l:prevlnum) + shiftwidth()
endif endif

3
scripts/Gemfile Normal file
View File

@@ -0,0 +1,3 @@
source "https://rubygems.org"
gem "jasherai-oniguruma"

View File

@@ -20,7 +20,7 @@ syn keyword lispKey ppx_runtime_libraries virtual_deps js_of_ocaml link_flags
syn keyword lispKey javascript_files flags ocamlc_flags ocamlopt_flags pps staged_pps syn keyword lispKey javascript_files flags ocamlc_flags ocamlopt_flags pps staged_pps
syn keyword lispKey library_flags c_flags c_library_flags kind package action syn keyword lispKey library_flags c_flags c_library_flags kind package action
syn keyword lispKey deps targets locks fallback syn keyword lispKey deps targets locks fallback
syn keyword lispKey inline_tests tests names syn keyword lispKey inline_tests tests test names
syn keyword lispAtom true false syn keyword lispAtom true false

View File

@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'erlang') == -1
" Language: Erlang (http://www.erlang.org) " Language: Erlang (http://www.erlang.org)
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com> " Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
" Contributor: Adam Rutkowski <hq@mtod.org> " Contributor: Adam Rutkowski <hq@mtod.org>
" Last Update: 2019-Jun-18 " Last Update: 2020-May-26
" License: Vim license " License: Vim license
" URL: https://github.com/vim-erlang/vim-erlang-runtime " URL: https://github.com/vim-erlang/vim-erlang-runtime

View File

@@ -16,6 +16,7 @@ syntax keyword odinBitField bit_field
syntax keyword odinBitSet bit_set syntax keyword odinBitSet bit_set
syntax keyword odinIf if syntax keyword odinIf if
syntax keyword odinWhen when
syntax keyword odinElse else syntax keyword odinElse else
syntax keyword odinDo do syntax keyword odinDo do
syntax keyword odinFor for syntax keyword odinFor for
@@ -36,7 +37,7 @@ syntax match odinFixMe "FIXME"
syntax match odinNoCheckin "NOCHECKIN" syntax match odinNoCheckin "NOCHECKIN"
syntax match odinHack "HACK" syntax match odinHack "HACK"
syntax keyword odinDataType string bool b8 b16 b32 b64 rune any rawptr f32 f64 f32le f32be f64le f64be u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be u32be u64be u128be uint i8 i16 i32 i64 i128 i16le i32le i64le i128le i16be i32be i64be i128be int syntax keyword odinDataType string cstring bool b8 b16 b32 b64 rune any rawptr f32 f64 f32le f32be f64le f64be u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be u32be u64be u128be uint i8 i16 i32 i64 i128 i16le i32le i64le i128le i16be i32be i64be i128be int
syntax keyword odinBool true false syntax keyword odinBool true false
syntax keyword odinNull nil syntax keyword odinNull nil
syntax keyword odinDynamic dynamic syntax keyword odinDynamic dynamic
@@ -138,6 +139,7 @@ highlight link odinDynamicFunction Function
highlight link odinMacro Macro highlight link odinMacro Macro
highlight link odinIf Conditional highlight link odinIf Conditional
highlight link odinWhen Conditional
highlight link odinElse Conditional highlight link odinElse Conditional
highlight link odinFor Repeat highlight link odinFor Repeat

View File

@@ -60,7 +60,7 @@ syn match zigCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{6}\)\)'/ contain
syn region zigBlock start="{" end="}" transparent fold syn region zigBlock start="{" end="}" transparent fold
syn region zigCommentLine start="//" end="$" contains=zigTodo,@Spell syn region zigCommentLine start="//" end="$" contains=zigTodo,@Spell
syn region zigCommentLineDoc start="////\@!" end="$" contains=zigTodo,@Spell syn region zigCommentLineDoc start="//[/!]/\@!" end="$" contains=zigTodo,@Spell
" TODO: match only the first '\\' within the zigMultilineString as zigMultilineStringPrefix " TODO: match only the first '\\' within the zigMultilineString as zigMultilineStringPrefix
syn match zigMultilineStringPrefix display contained /c\?\\\\/ syn match zigMultilineStringPrefix display contained /c\?\\\\/