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