Ajout syntaxe et début indentation
This commit is contained in:
parent
86f72a07ef
commit
748cb6af3d
3 changed files with 85 additions and 0 deletions
8
ftdetect/testalgo.vim
Normal file
8
ftdetect/testalgo.vim
Normal file
|
@ -0,0 +1,8 @@
|
|||
" syntaxe de testalgo
|
||||
" Maintainer: rick@gnous.eu
|
||||
" Contributor:
|
||||
" Last Changes: 07 Octobre 2020
|
||||
" Gnous Repository: https://git.gnous.eu/Rick/vim-testalgo
|
||||
" Licence: GPL3 only
|
||||
|
||||
au BufNewFile,BufRead *.talg set filetype=testalgo
|
36
indent/testalgo.vim
Normal file
36
indent/testalgo.vim
Normal file
|
@ -0,0 +1,36 @@
|
|||
setlocal indentexpr=TestalgoIndent()
|
||||
|
||||
function! TestalgoIndent()
|
||||
let line = getline(v:lnum)
|
||||
let previousNum = prevnonblank(v:lnum-1)
|
||||
let nextNum = prevnonblank(v:lnum+1)
|
||||
let previous = getline(previousNum)
|
||||
let next = getline(nextNum)
|
||||
|
||||
if previous =~ "^var$"
|
||||
return indent(previousNum) + &tabstop
|
||||
endif
|
||||
|
||||
if previous =~ "alors" && previous !~ "finsi" && line !~ "finsi"
|
||||
call append(line(1), 'finsi')
|
||||
return indent(previousNum) + &tabstop
|
||||
endif
|
||||
|
||||
if previous =~ "alors" && previous !~ "finsi" && line !~ "finsi" && line !~ "alors"
|
||||
return indent(previousNum) + &tabstop
|
||||
endif
|
||||
|
||||
|
||||
|
||||
if previous =~ "tantque \(.*\)$" && previous !~ "fintantque" && line !~ "fintantque" && line !~ "tantque \(.*\)$"
|
||||
return indent(previousNum) + &tabstop
|
||||
endif
|
||||
|
||||
if previous =~ "repeter" && previous !~ "finrepeter" && line !~ "finrepeter" && line !~ "repeter"
|
||||
return indent(previousNum) + &tabstop
|
||||
endif
|
||||
|
||||
if previous =~ "pas .*" && previous !~ "finpour" && line !~ "finpour" && line !~ "pas .*"
|
||||
return indent(previousNum) + &tabstop
|
||||
endif
|
||||
endfunction
|
41
syntax/testalgo.vim
Normal file
41
syntax/testalgo.vim
Normal file
|
@ -0,0 +1,41 @@
|
|||
" syntaxe de testalgo
|
||||
" Maintainer: rick@gnous.eu
|
||||
" Contributor:
|
||||
" Last Changes: 07 Octobre 2020
|
||||
" Gnous Repository: https://git.gnous.eu/Rick/vim-testalgo
|
||||
" Licence: GPL3 only
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax keyword testalgoKeyword var algo debut fin
|
||||
syntax keyword testalgoConditional si alors sinon finsi
|
||||
syntax keyword testalgoRepeat tantque fintantque pour finpour à pas
|
||||
syntax keyword testalgoRepeat repeter finrepeter jusqua
|
||||
syntax keyword testalgoFunction saisir afficher afficherln alaligne
|
||||
|
||||
highlight link testalgoKeyword Keyword
|
||||
highlight link testalgoConditional Conditional
|
||||
highlight link testalgoRepeat Repeat
|
||||
highlight link testalgoFunction Function
|
||||
|
||||
syntax keyword testalgoBoolean vrai faux
|
||||
syntax keyword testalgoType entier reel booleen chaine caractere
|
||||
highlight link testalgoBoolean Boolean
|
||||
highlight link testalgoType Type
|
||||
|
||||
"TODO tableau_de (permet de faire un tableau)
|
||||
"TODO procedure fonction (définessent des fonctions)
|
||||
"TODO principal (main)
|
||||
|
||||
syntax match testalgoComment "\v#.*$"
|
||||
highlight link testalgoComment Comment
|
||||
|
||||
syntax match testalgoString "\v\".*\""
|
||||
highlight link testalgoString String
|
||||
|
||||
"syntax match testalgoOperator "\v:\="
|
||||
"highlight link testalgoOperator Operator
|
||||
|
||||
let b:current_syntax = "testalgo"
|
Loading…
Reference in a new issue