Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
M
my config files
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Wiki
Wiki externe
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Extraits de code
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de conteneurs
Registre de modèles
Opération
Environnements
Surveillance
Incidents
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse CI/CD
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Loïc DUBARD
my config files
Validations
e99ba322
Valider
e99ba322
rédigé
Il y a 6 ans
par
Loïc DUBARD
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
Upload python.vim file
parent
ba70a33e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline
#1518
annulé
Il y a 6 ans
Étape : build
Étape : test
Modifications
1
Pipelines
1
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
1 fichier modifié
.vim/syntax/python.vim
+351
-0
351 ajouts, 0 suppression
.vim/syntax/python.vim
avec
351 ajouts
et
0 suppression
.vim/syntax/python.vim
0 → 100644
+
351
−
0
Voir le fichier @
e99ba322
" Vim syntax file
" Language: Python
" Maintainer: Neil Schemenauer <nas@python.ca>
" Last Change: 2009-10-13
" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
" Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
"
" This version is a major rewrite by Zvezdan Petkovic.
"
" - introduced highlighting of doctests
" - updated keywords, built-ins, and exceptions
" - corrected regular expressions for
"
" * functions
" * decorators
" * strings
" * escapes
" * numbers
" * space error
"
" - corrected synchronization
" - more highlighting is ON by default, except
" - space error highlighting is OFF by default
"
" Optional highlighting can be controlled using these variables.
"
" let python_no_builtin_highlight = 1
" let python_no_doctest_code_highlight = 1
" let python_no_doctest_highlight = 1
" let python_no_exception_highlight = 1
" let python_no_number_highlight = 1
" let python_space_error_highlight = 1
"
" All the options above can be switched on together.
"
" let python_highlight_all = 1
"
" For version 5.x: Clear all syntax items.
" For version 6.x: Quit when a syntax file was already loaded.
if
version
<
600
syntax
clear
elseif
exists
(
"b:current_syntax"
)
finish
endif
" Keep Python keywords in alphabetical order inside groups for easy
" comparison with the table in the 'Python Language Reference'
" http://docs.python.org/reference/lexical_analysis.html#keywords.
" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt.
" Exceptions come last at the end of each group (class and def below).
"
" Keywords 'with' and 'as' are new in Python 2.6
" (use 'from __future__ import with_statement' in Python 2.5).
"
" Some compromises had to be made to support both Python 3.0 and 2.6.
" We include Python 3.0 features, but when a definition is duplicated,
" the last definition takes precedence.
"
" - 'False', 'None', and 'True' are keywords in Python 3.0 but they are
" built-ins in 2.6 and will be highlighted as built-ins below.
" - 'exec' is a built-in in Python 3.0 and will be highlighted as
" built-in below.
" - 'nonlocal' is a keyword in Python 3.0 and will be highlighted.
" - 'print' is a built-in in Python 3.0 and will be highlighted as
" built-in below (use 'from __future__ import print_function' in 2.6)
"
syn
keyword pythonConstant False None True
syn
keyword pythonStatement
as
assert
break
continue
del exec global
syn
keyword pythonStatement lambda nonlocal pass
print
return
with yield
syn
keyword pythonStatement
def
nextgroup
=
pythonFunction skipwhite
syn
keyword pythonStatement class nextgroup
=
pythonClass skipwhite
syn
keyword pythonConditional elif
else
if
syn
keyword pythonRepeat
for
while
syn
keyword pythonOperator
and
in
is
not
or
syn
keyword pythonException except
finally
raise
try
syn
keyword pythonInclude from
import
" NOTE: @pfdevilliers added this
" I copied this directly from the ruby.vim syntax file inorder to highlight all
" the operators. This must offcourse be revised to only contain the operators
" that exists in python.
syn
match
pythonExtraOperator
"\%([~!^&|*/%+-]\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@<!>\|\*\*\|\.\.\.\|\.\.\|::\|=\)"
syn
match
pythonExtraPseudoOperator
"\%(-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!=\)"
"syn region pythonClass start="(" end=")" contains=pythonParameters skipwhite transparent
" Decorators (new in Python 2.4)
syn
match
pythonDecorator
"@"
display
nextgroup
=
pythonFunction skipwhite
" The zero-length non-grouping match before the function name is
" extremely important in pythonFunction. Without it, everything is
" interpreted as a function inside the contained environment of
" doctests.
" A dot must be allowed because of @MyClass.myfunc decorators.
" NOTE: @pfdevilliers added this
" This was added based on the guidelines from Stackoverflow.
" http://stackoverflow.com/questions/8312132/vim-editing-the-python-vim-syntax-file-to-highlight-like-textmate
" It is really a hack job ignoring best practices. I royally screwed up the
" regular expressions which led to the definition of the pythonBrackets.
" This should be improved and simplified.
syn
match
pythonFunction
\
"\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*"
contained nextgroup
=
pythonVars
" NOTE: @Kamushin fix this
" @mock(a=["(aa)"])
" def foo(self, str_a='aaa()aaa):')
syn
region pythonVars start
=
"("
end
=
"):*\n"
contained contains
=
pythonParameters transparent keepend
syn
match
pythonParameters
"[^,:]*"
contained contains
=
pythonParam
,
pythonBrackets skipwhite
syn
match
pythonParam
"=[^,]*"
contained contains
=
pythonExtraOperator
,
pythonBuiltin
,
pythonConstant
,
pythonStatement
,
pythonNumber
,
pythonString skipwhite
syn
match
pythonBrackets
"[(|)]"
contained skipwhite
" NOTE: @pfdevilliers added this
" The same as the previous definitions but for the python class.
syn
match
pythonClass
\
"\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*"
contained nextgroup
=
pythonClassVars
syn
region pythonClassVars start
=
"("
end
=
")"
contained contains
=
pythonClassParameters transparent keepend
syn
match
pythonClassParameters
"[^,]*"
contained contains
=
pythonBuiltin
,
pythonBrackets skipwhite
syn
match
pythonComment
"#.*$"
contains
=
pythonTodo
,
@Spell
syn
keyword pythonTodo FIXME NOTE NOTES TODO XXX contained
" Triple-quoted strings can contain doctests.
syn
region pythonString
\
start
=+[
uU
]
\
=
\z
([
'
"]\)+ end="
\z1
" skip="
\\\\\
|
\\\z1"
\
contains
=
pythonEscape
,
@Spell
syn
region pythonString
\
start
=+[
uU
]
\
=
\z
(
''
'\
|
"""\)+ end="
\z1" keepend
\
contains
=
pythonEscape
,
pythonSpaceError
,
pythonDoctest
,
@Spell
syn
region pythonRawString
\
start
=+[
uU
]
\
=[
rR
]
\z
([
'
"]\)+ end="
\z1
" skip="
\\\\\
|
\\\z1"
\
contains
=
@Spell
syn
region pythonRawString
\
start
=+[
uU
]
\
=[
rR
]
\z
(
''
'\
|
"""\)+ end="
\z1" keepend
\
contains
=
pythonSpaceError
,
pythonDoctest
,
@Spell
syn
match
pythonEscape
+
\\
[
abfnrtv'"\\
]+
contained
syn
match
pythonEscape
"\\\o\{1,3}"
contained
syn
match
pythonEscape
"\\x\x\{2}"
contained
syn
match
pythonEscape
"\%(\\u\x\{4}\|\\U\x\{8}\)"
contained
" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
syn
match
pythonEscape
"\\N{\a\+\%(\s\a\+\)*}"
contained
syn
match
pythonEscape
"\\$"
if
exists
(
"python_highlight_all"
)
if
exists
(
"python_no_builtin_highlight"
)
unlet python_no_builtin_highlight
endif
if
exists
(
"python_no_doctest_code_highlight"
)
unlet python_no_doctest_code_highlight
endif
if
exists
(
"python_no_doctest_highlight"
)
unlet python_no_doctest_highlight
endif
if
exists
(
"python_no_exception_highlight"
)
unlet python_no_exception_highlight
endif
if
exists
(
"python_no_number_highlight"
)
unlet python_no_number_highlight
endif
let
python_space_error_highlight
=
1
endif
" It is very important to understand all details before changing the
" regular expressions below or their order.
" The word boundaries are *not* the floating-point number boundaries
" because of a possible leading or trailing decimal point.
" The expressions below ensure that all valid number literals are
" highlighted, and invalid number literals are not. For example,
"
" - a decimal point in '4.' at the end of a line is highlighted,
" - a second dot in 1.0.0 is not highlighted,
" - 08 is not highlighted,
" - 08e0 or 08j are highlighted,
"
" and so on, as specified in the 'Python Language Reference'.
" http://docs.python.org/reference/lexical_analysis.html#numeric-literals
if
!
exists
(
"python_no_number_highlight"
)
" numbers (including longs and complex)
syn
match
pythonNumber
"\<0[oO]\=\o\+[Ll]\=\>"
syn
match
pythonNumber
"\<0[xX]\x\+[Ll]\=\>"
syn
match
pythonNumber
"\<0[bB][01]\+[Ll]\=\>"
syn
match
pythonNumber
"\<\%([1-9]\d*\|0\)[Ll]\=\>"
syn
match
pythonNumber
"\<\d\+[jJ]\>"
syn
match
pythonNumber
"\<\d\+[eE][+-]\=\d\+[jJ]\=\>"
syn
match
pythonNumber
\
"\<\d\+\.\%([eE][+-]\=\d\+\)\=[jJ]\=\%(\W\|$\)\@="
syn
match
pythonNumber
\
"\%(^\|\W\)\@<=\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>"
endif
" Group the built-ins in the order in the 'Python Library Reference' for
" easier comparison.
" http://docs.python.org/library/constants.html
" http://docs.python.org/library/functions.html
" http://docs.python.org/library/functions.html#non-essential-built-in-functions
" Python built-in functions are in alphabetical order.
if
!
exists
(
"python_no_builtin_highlight"
)
" built-in constants
" 'False', 'True', and 'None' are also reserved words in Python 3.0
syn
keyword pythonConstant False True None
syn
keyword pythonConstant NotImplemented Ellipsis __debug__
" built-in functions
syn
keyword pythonBuiltin
abs
all
any
bin
bool chr classmethod
syn
keyword pythonBuiltin compile complex delattr
dict
dir
divmod
syn
keyword pythonBuiltin enumerate
eval
filter
float format
syn
keyword pythonBuiltin frozenset getattr globals hasattr hash
syn
keyword pythonBuiltin
help
hex id
input
int isinstance
syn
keyword pythonBuiltin issubclass iter
len
list
locals
map
max
syn
keyword pythonBuiltin
min
next
object oct
open
ord
pow
print
syn
keyword pythonBuiltin property
range
repr reversed
round
set
syn
keyword pythonBuiltin setattr slice sorted staticmethod str
syn
keyword pythonBuiltin sum super tuple
type
vars zip __import__
" Python 2.6 only
syn
keyword pythonBuiltin basestring callable
cmp
execfile
file
syn
keyword pythonBuiltin long raw_input reduce reload unichr
syn
keyword pythonBuiltin unicode xrange
" Python 3.0 only
syn
keyword pythonBuiltin
ascii
bytearray bytes exec memoryview
" non-essential built-in functions; Python 2.6 only
syn
keyword pythonBuiltin apply
buffer
coerce intern
endif
" From the 'Python Library Reference' class hierarchy at the bottom.
" http://docs.python.org/library/exceptions.html
if
!
exists
(
"python_no_exception_highlight"
)
" builtin base exceptions (only used as base classes for other exceptions)
syn
keyword pythonExceptions BaseException Exception
syn
keyword pythonExceptions ArithmeticError EnvironmentError
syn
keyword pythonExceptions LookupError
" builtin base exception removed in Python 3.0
syn
keyword pythonExceptions StandardError
" builtin exceptions (actually raised)
syn
keyword pythonExceptions AssertionError AttributeError BufferError
syn
keyword pythonExceptions EOFError FloatingPointError GeneratorExit
syn
keyword pythonExceptions IOError ImportError IndentationError
syn
keyword pythonExceptions IndexError KeyError KeyboardInterrupt
syn
keyword pythonExceptions MemoryError NameError NotImplementedError
syn
keyword pythonExceptions OSError OverflowError ReferenceError
syn
keyword pythonExceptions RuntimeError StopIteration SyntaxError
syn
keyword pythonExceptions SystemError SystemExit TabError TypeError
syn
keyword pythonExceptions UnboundLocalError UnicodeError
syn
keyword pythonExceptions UnicodeDecodeError UnicodeEncodeError
syn
keyword pythonExceptions UnicodeTranslateError ValueError VMSError
syn
keyword pythonExceptions WindowsError ZeroDivisionError
" builtin warnings
syn
keyword pythonExceptions BytesWarning DeprecationWarning FutureWarning
syn
keyword pythonExceptions ImportWarning PendingDeprecationWarning
syn
keyword pythonExceptions RuntimeWarning SyntaxWarning UnicodeWarning
syn
keyword pythonExceptions UserWarning Warning
endif
if
exists
(
"python_space_error_highlight"
)
" trailing whitespace
syn
match
pythonSpaceError
display
excludenl
"\s\+$"
" mixed tabs and spaces
syn
match
pythonSpaceError
display
" \+\t"
syn
match
pythonSpaceError
display
"\t\+ "
endif
" Do not spell doctests inside strings.
" Notice that the end of a string, either ''', or """, will end the contained
" doctest too. Thus, we do *not* need to have it as an end pattern.
if
!
exists
(
"python_no_doctest_highlight"
)
if
!
exists
(
"python_no_doctest_code_higlight"
)
syn
region pythonDoctest
\
start
=
"^\s*>>>\s"
end
=
"^\s*$"
\
contained contains
=
ALLBUT
,
pythonDoctest
,
@Spell
syn
region pythonDoctestValue
\
start
=+
^\s*\%
(>>>
\s\
|
\
.
\
.
\
.
\s\
|
"""\|'''\)\@!\S\++ end="
$"
\
contained
else
syn
region pythonDoctest
\
start
=
"^\s*>>>"
end
=
"^\s*$"
\
contained contains
=
@NoSpell
endif
endif
" Sync at the beginning of class, function, or method definition.
syn
sync
match
pythonSync grouphere
NONE
"^\s*\%(def\|class\)\s\+\h\w*\s*("
if
version
>=
508
||
!
exists
(
"did_python_syn_inits"
)
if
version
<=
508
let
did_python_syn_inits
=
1
command
-
nargs
=+
HiLink
hi
link
<
args
>
else
command
-
nargs
=+
HiLink
hi
def
link
<
args
>
endif
" The default highlight links. Can be overridden later.
"
" NOTE: @pfdevilliers added this
" I added some colors here but i'm not sure if it is the correct place to
" override it.
"
" HiLink pythonStatement Statement
HiLink pythonConstant Constant
HiLink pythonStatement Structure
HiLink pythonConditional Conditional
HiLink pythonRepeat Repeat
HiLink pythonOperator Operator
HiLink pythonException Exception
"HiLink pythonInclude Include
HiLink pythonInclude Operator
HiLink pythonDecorator Define
HiLink pythonFunction Function
HiLink pythonComment Comment
HiLink pythonTodo Todo
HiLink pythonString String
HiLink pythonRawString String
HiLink pythonEscape Special
HiLink pythonExtraOperator Operator
HiLink pythonExtraPseudoOperator Operator
HiLink pythonClass Normal
HiLink pythonParameters Identifier
HiLink pythonParam Normal
HiLink pythonBrackets Normal
HiLink pythonClassParameters InheritUnderlined
if
!
exists
(
"python_no_number_highlight"
)
HiLink pythonNumber Number
endif
if
!
exists
(
"python_no_builtin_highlight"
)
"HiLink pythonBuiltin Function
HiLink pythonBuiltin Builtin
endif
if
!
exists
(
"python_no_exception_highlight"
)
HiLink pythonExceptions Structure
endif
if
exists
(
"python_space_error_highlight"
)
HiLink pythonSpaceError Error
endif
if
!
exists
(
"python_no_doctest_highlight"
)
HiLink pythonDoctest Special
HiLink pythonDoctestValue Define
endif
delcommand
HiLink
endif
let
b:current_syntax
=
"python"
" vim:set sw=2 sts=2 ts=8 noet:
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter