summaryrefslogtreecommitdiffstats
path: root/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'autoload')
-rw-r--r--autoload/cargo/quickfix.vim3
-rw-r--r--autoload/polyglot.vim44
-rw-r--r--autoload/rustfmt.vim4
-rw-r--r--autoload/sleuth.vim2
4 files changed, 50 insertions, 3 deletions
diff --git a/autoload/cargo/quickfix.vim b/autoload/cargo/quickfix.vim
index e1e5b9d2..cce7fcbb 100644
--- a/autoload/cargo/quickfix.vim
+++ b/autoload/cargo/quickfix.vim
@@ -1,7 +1,8 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
function! cargo#quickfix#CmdPre() abort
- if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo'
+ if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo' &&
+ \ &makeprg =~ '\V\^cargo\ \.\*'
" Preserve the current directory, and 'lcd' to the nearest Cargo file.
let b:rust_compiler_cargo_qf_has_lcd = haslocaldir()
let b:rust_compiler_cargo_qf_prev_cd = getcwd()
diff --git a/autoload/polyglot.vim b/autoload/polyglot.vim
index 3753dc8e..eca7e304 100644
--- a/autoload/polyglot.vim
+++ b/autoload/polyglot.vim
@@ -212,6 +212,50 @@ func! polyglot#DetectReFiletype()
endfor
endfunc
+func! polyglot#DetectIdrFiletype()
+ for lnum in range(1, min([line("$"), 5]))
+ let line = getline(lnum)
+ if line =~# '^\s*--.*[Ii]dris \=1'
+ setf idris | return
+ endif
+ if line =~# '^\s*--.*[Ii]dris \=2'
+ setf idris2 | return
+ endif
+ endfor
+ for lnum in range(1, min([line("$"), 30]))
+ let line = getline(lnum)
+ if line =~# '^pkgs =.*'
+ setf idris | return
+ endif
+ if line =~# '^depends =.*'
+ setf idris2 | return
+ endif
+ if line =~# '^%language \(TypeProviders\|ElabReflection\)'
+ setf idris | return
+ endif
+ if line =~# '^%language PostfixProjections'
+ setf idris2 | return
+ endif
+ if line =~# '^%access .*'
+ setf idris | return
+ endif
+ if exists("g:filetype_idr")
+ exe "setf " . g:filetype_idr | return
+ endif
+ endfor
+ setf idris2 | return
+endfunc
+
+func! polyglot#DetectLidrFiletype()
+ for lnum in range(1, min([line("$"), 200]))
+ let line = getline(lnum)
+ if line =~# '^>\s*--.*[Ii]dris \=1'
+ setf lidris | return
+ endif
+ endfor
+ setf lidris2 | return
+endfunc
+
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/autoload/rustfmt.vim b/autoload/rustfmt.vim
index 514e4147..60e2029e 100644
--- a/autoload/rustfmt.vim
+++ b/autoload/rustfmt.vim
@@ -65,12 +65,12 @@ endfunction
function! s:RustfmtConfigOptions()
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
if l:rustfmt_toml !=# ''
- return '--config-path '.fnamemodify(l:rustfmt_toml, ":p")
+ return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
endif
let l:_rustfmt_toml = findfile('.rustfmt.toml', expand('%:p:h') . ';')
if l:_rustfmt_toml !=# ''
- return '--config-path '.fnamemodify(l:_rustfmt_toml, ":p")
+ return '--config-path '.shellescape(fnamemodify(l:_rustfmt_toml, ":p"))
endif
" Default to edition 2018 in case no rustfmt.toml was found.
diff --git a/autoload/sleuth.vim b/autoload/sleuth.vim
index a912cda4..e70169cb 100644
--- a/autoload/sleuth.vim
+++ b/autoload/sleuth.vim
@@ -103,6 +103,7 @@ let s:globs = {
\ 'i3config': '*.i3.config,*.i3config,i3.config,i3config',
\ 'icalendar': '*.ics',
\ 'idris': '*.idr,*.lidr,idris-response',
+ \ 'idris2': '*.idr,*.ipkg,idris-response',
\ 'ion': '*.ion',
\ 'javascript': '*.js,*._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,Jakefile',
\ 'javascriptreact': '*.jsx',
@@ -116,6 +117,7 @@ let s:globs = {
\ 'kotlin': '*.kt,*.ktm,*.kts',
\ 'ledger': '*.ldg,*.ledger,*.journal',
\ 'less': '*.less',
+ \ 'lidris2': '*.lidr',
\ 'lilypond': '*.ly,*.ily',
\ 'litcoffee': '*.litcoffee,*.coffee.md',
\ 'livescript': '*.ls,*._ls,Slakefile',