mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -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
|
||||
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()
|
||||
if exists('g:filetype_euphoria')
|
||||
exe 'setf ' . g:filetype_euphoria
|
||||
|
@ -389,7 +389,7 @@ au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf
|
||||
" Configure scripts
|
||||
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
|
||||
|
||||
" Dockerfilb; Podman uses the same syntax with name Containerfile
|
||||
@ -404,8 +404,15 @@ au BufNewFile,BufRead *enlightenment/*.cfg setf c
|
||||
" 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
|
||||
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")
|
||||
au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck()
|
||||
endif
|
||||
|
@ -161,6 +161,8 @@ let s:filename_checks = {
|
||||
\ 'ecd': ['file.ecd'],
|
||||
\ 'edif': ['file.edf', 'file.edif', 'file.edo'],
|
||||
\ 'elinks': ['elinks.conf'],
|
||||
\ 'elixir': ['file.ex', 'file.exs', 'mix.lock'],
|
||||
\ 'eelixir': ['file.eex', 'file.leex'],
|
||||
\ 'elm': ['file.elm'],
|
||||
\ 'elmfilt': ['filter-rules'],
|
||||
\ 'epuppet': ['file.epp'],
|
||||
@ -765,5 +767,41 @@ func Test_pp_file()
|
||||
filetype off
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user