mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
vim-patch:8.2.3050: cannot recognize elixir files
Problem: Cannot recognize elixir files.
Solution: Recognize Elixir-specific files. Check if an .ex file is Euphoria
or Elixir. (Austin Gatlin, closes vim/vim#8401, closes vim/vim#8446)
f3caeb63d6
This commit is contained in:
parent
5c0b01fd88
commit
750ad18845
11
runtime/autoload/dist/ft.vim
vendored
11
runtime/autoload/dist/ft.vim
vendored
@ -172,6 +172,17 @@ func dist#ft#FTent()
|
|||||||
setf dtd
|
setf dtd
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func dist#ft#ExCheck()
|
||||||
|
let lines = getline(1, min([line("$"), 100]))
|
||||||
|
if exists('g:filetype_euphoria')
|
||||||
|
exe 'setf ' . g:filetype_euphoria
|
||||||
|
elseif match(lines, '^--\|^ifdef\>\|^include\>') > -1
|
||||||
|
setf euphoria3
|
||||||
|
else
|
||||||
|
setf elixir
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
func dist#ft#EuphoriaCheck()
|
func dist#ft#EuphoriaCheck()
|
||||||
if exists('g:filetype_euphoria')
|
if exists('g:filetype_euphoria')
|
||||||
exe 'setf ' . g:filetype_euphoria
|
exe 'setf ' . g:filetype_euphoria
|
||||||
|
@ -389,7 +389,7 @@ au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf
|
|||||||
" Configure scripts
|
" Configure scripts
|
||||||
au BufNewFile,BufRead configure.in,configure.ac setf config
|
au BufNewFile,BufRead configure.in,configure.ac setf config
|
||||||
|
|
||||||
" CUDA Cumpute Unified Device Architecture
|
" CUDA Compute Unified Device Architecture
|
||||||
au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
||||||
|
|
||||||
" Dockerfilb; Podman uses the same syntax with name Containerfile
|
" Dockerfilb; Podman uses the same syntax with name Containerfile
|
||||||
@ -404,8 +404,15 @@ au BufNewFile,BufRead *enlightenment/*.cfg setf c
|
|||||||
" Eterm
|
" Eterm
|
||||||
au BufNewFile,BufRead *Eterm/*.cfg setf eterm
|
au BufNewFile,BufRead *Eterm/*.cfg setf eterm
|
||||||
|
|
||||||
|
" Elixir or Euphoria
|
||||||
|
au BufNewFile,BufRead *.ex call dist#ft#ExCheck()
|
||||||
|
|
||||||
|
" Elixir
|
||||||
|
au BufRead,BufNewFile mix.lock,*.exs setf elixir
|
||||||
|
au BufRead,BufNewFile *.eex,*.leex setf eelixir
|
||||||
|
|
||||||
" Euphoria 3 or 4
|
" Euphoria 3 or 4
|
||||||
au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call dist#ft#EuphoriaCheck()
|
au BufNewFile,BufRead *.eu,*.ew,*.exu,*.exw call dist#ft#EuphoriaCheck()
|
||||||
if has("fname_case")
|
if has("fname_case")
|
||||||
au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck()
|
au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck()
|
||||||
endif
|
endif
|
||||||
|
@ -161,6 +161,8 @@ let s:filename_checks = {
|
|||||||
\ 'ecd': ['file.ecd'],
|
\ 'ecd': ['file.ecd'],
|
||||||
\ 'edif': ['file.edf', 'file.edif', 'file.edo'],
|
\ 'edif': ['file.edf', 'file.edif', 'file.edo'],
|
||||||
\ 'elinks': ['elinks.conf'],
|
\ 'elinks': ['elinks.conf'],
|
||||||
|
\ 'elixir': ['file.ex', 'file.exs', 'mix.lock'],
|
||||||
|
\ 'eelixir': ['file.eex', 'file.leex'],
|
||||||
\ 'elm': ['file.elm'],
|
\ 'elm': ['file.elm'],
|
||||||
\ 'elmfilt': ['filter-rules'],
|
\ 'elmfilt': ['filter-rules'],
|
||||||
\ 'epuppet': ['file.epp'],
|
\ 'epuppet': ['file.epp'],
|
||||||
@ -765,5 +767,41 @@ func Test_pp_file()
|
|||||||
filetype off
|
filetype off
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_ex_file()
|
||||||
|
filetype on
|
||||||
|
|
||||||
|
call writefile(['arbitrary content'], 'Xfile.ex')
|
||||||
|
split Xfile.ex
|
||||||
|
call assert_equal('elixir', &filetype)
|
||||||
|
bwipe!
|
||||||
|
let g:filetype_euphoria = 'euphoria4'
|
||||||
|
split Xfile.ex
|
||||||
|
call assert_equal('euphoria4', &filetype)
|
||||||
|
bwipe!
|
||||||
|
unlet g:filetype_euphoria
|
||||||
|
|
||||||
|
call writefile(['-- filetype euphoria comment'], 'Xfile.ex')
|
||||||
|
split Xfile.ex
|
||||||
|
call assert_equal('euphoria3', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
call writefile(['--filetype euphoria comment'], 'Xfile.ex')
|
||||||
|
split Xfile.ex
|
||||||
|
call assert_equal('euphoria3', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
call writefile(['ifdef '], 'Xfile.ex')
|
||||||
|
split Xfile.ex
|
||||||
|
call assert_equal('euphoria3', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
call writefile(['include '], 'Xfile.ex')
|
||||||
|
split Xfile.ex
|
||||||
|
call assert_equal('euphoria3', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
call delete('Xfile.ex')
|
||||||
|
filetype off
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
Loading…
Reference in New Issue
Block a user