# HG changeset patch # User Sturla Molden <sturla@molden.no> # Date 1256723843 25200 # Node ID 0a6ce52272f641d58c874fa007187778d4c2c81c # Parent db4133d43a7ee34d4f172aced054785acba65a57 Syntax highlighting for Cython and NumPy for KATE and KDevelop. diff -r db4133d43a7e -r 0a6ce52272f6 Tools/cython-numpy-mode-kate.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Tools/cython-numpy-mode-kate.xml Wed Oct 28 02:57:23 2009 -0700 @@ -0,0 +1,1133 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE language> +<!-- Python syntax highlightning v0.9 by Per Wigren --> +<!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) --> +<!-- Python syntax highlighting v1.97 by Paul Giannaros --> +<!-- Pyrex syntax highlighting v0.1 by Matthew Marshall --> +<!-- Cython syntax highlighting v1.0 by Martin Gysel --> +<!-- Cython syntax highlighting v2.0 by Sturla Molden --> + +<!-- + +Disclaimer: IANAL. This file is a derivative work of KDE's Python +syntax file. KDE does not specify a license for the syntax file python.xml +in it's katepart component. However, katepart and KATE as a whole is +released with LGPL v2. Assuing python.xml is LGPL'd, this file is hereby +released with the same license. Note that this only applies to this XML +file. It does not apply to any work written using this file to highlighting +syntax. Any changes you make to this file will be covered by the LGPL, +but it does not to my knowledge taint your source code. At least not +any more than using KDE would do. Sturla Molden + +Thus: + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the +Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +Boston, MA 02110-1301, USA. + + + +--> + +<language name="Cython with NumPy" version="1.1" kateversion="2.4" section="Sources" extensions="*.pyx;*.pxi;*.pxd" mimetype="application/x-cython;text/x-cython" casesensitive="1" author="Sturla Molden" license="LGPL"> + <highlighting> + <list name="as"> + <item> as </item> + </list> + <list name="imports"> + <item> cimport </item> + <item> import </item> + <item> from </item> + <item> as </item> + </list> + <list name="prep"> + <item> DEF </item> + <item> IF </item> + <item> ELIF </item> + <item> ELSE </item> + <item> include </item> + </list> + <list name="defs"> + <item> class </item> + <item> cpdef </item> + <item> def </item> + </list> + <list name="cdef"> + <item> cdef </item> + <item> ctypedef </item> + </list> + <list name="keyw" > + <item> extern </item> + <item> api </item> + <item> del </item> + <item> global </item> + <item> property </item> + <item> nogil </item> + <item> gil </item> + <item> inline </item> + </list> + <list name="access"> + <item> readonly </item> + <item> public </item> + </list> + <list name="operators"> + <item> and </item> + <item> assert </item> + <item> in </item> + <item> is </item> + <item> by </item> + <item> not </item> + <item> or </item> + <item> sizeof </item> + </list> + <list name="commands"> + <!-- <item> exec </item> --> + <item> print </item> + </list> + <list name="flow"> + <item> break </item> + <item> continue </item> + <item> elif </item> + <item> else </item> + <item> except </item> + <item> finally </item> + <item> for </item> + <item> if </item> + <item> pass </item> + <item> raise </item> + <item> return </item> + <item> try </item> + <item> while </item> + <item> with </item> + <!-- <item> yield </item> --> + </list> + <list name="builtinfuncs"> + <item> __import__ </item> + <item> abs </item> + <item> all </item> + <item> any </item> + <item> apply </item> + <item> basestring </item> + <item> buffer </item> + <item> callable </item> + <item> chr </item> + <item> classmethod </item> + <item> cmp </item> + <item> coerce </item> + <item> compile </item> + <item> delattr </item> + <item> dir </item> + <item> divmod </item> + <item> enumerate </item> + <item> eval </item> + <item> execfile </item> + <item> filter </item> + <item> getattr </item> + <!-- <item> globals </item> --> + <item> hasattr </item> + <item> hash </item> + <item> hex </item> + <item> id </item> + <item> input </item> + <item> intern </item> + <item> isinstance </item> + <item> issubclass </item> + <item> iter </item> + <item> len </item> + <!-- <item> locals </item> --> + <item> map </item> + <item> max </item> + <item> min </item> + <item> oct </item> + <item> open </item> + <item> ord </item> + <item> pow </item> + <!-- <item> property </item> --> + <item> range </item> + <item> raw_input </item> + <item> reduce </item> + <item> reload </item> + <item> repr </item> + <item> reversed </item> + <item> round </item> + <item> setattr </item> + <item> sorted </item> + <item> staticmethod </item> + <item> sum </item> + <item> super </item> + <item> type </item> + <item> unichr </item> + <item> unicode </item> + <!-- <item> vars </item> --> + <item> xrange </item> + <item> zip </item> + </list> + <list name="ctypes"> + <!-- native types --> + <item> unsigned </item> + <item> void </item> + <item> enum </item> + <item> double </item> + <item> long </item> + <item> short </item> + <item> char </item> + <item> Py_ssize_t </item> + <item> Py_intptr_t </item> + <item> Py_buffer </item> + <item> bint </item> + <item> struct </item> + <item> union </item> + <item> enum </item> + <!-- python types --> + </list> + <list name="pytypes"> + <item> int </item> + <item> float </item> + <item> object </item> + <item> list </item> + <item> tuple </item> + <item> str </item> + <item> dict </item> + <item> set </item> + <item> frozenset </item> + <item> slice </item> + <item> bool </item> + <item> complex </item> + <item> file </item> + <!-- numpy types --> + </list> + <list name="numpyselector"> + <item> np </item> + <item> numpy </item> + </list> + <list name="numpymodule"> + <item> numpy </item> + </list> + <list name="cythonmodule"> + <item> cython </item> + </list> + <list name="numpytypes"> + <item> dtype </item> + <item> flatiter </item> + <item> broadcast </item> + <item> ndarray </item> + <item> int8_t </item> + <item> int16_t </item> + <item> int32_t </item> + <item> int64_t </item> + <item> uint8_t </item> + <item> uint16_t </item> + <item> uint32_t </item> + <item> uint64_t </item> + <item> float32_t </item> + <item> float64_t </item> + <item> complex64_t </item> + <item> complex128_t </item> + <item> int_t </item> + <item> long_t </item> + <item> uint_t </item> + <item> ulong_t </item> + <item> float_t </item> + <item> double_t </item> + <item> longdouble_t </item> + <item> cfloat_t </item> + <item> cdouble_t </item> + <item> clongdouble_t </item> + <item> complex_t </item> + <item> npy_int8 </item> + <item> npy_int16 </item> + <item> npy_int32 </item> + <item> npy_int64 </item> + <item> npy_int96 </item> + <item> npy_int128 </item> + <item> npy_uint8 </item> + <item> npy_uint16 </item> + <item> npy_uint32 </item> + <item> npy_uint64 </item> + <item> npy_uint96 </item> + <item> npy_uint128 </item> + <item> npy_float32 </item> + <item> npy_float64 </item> + <item> npy_float80 </item> + <item> npy_float96 </item> + <item> npy_float128 </item> + <item> npy_complex64 </item> + <item> npy_complex128 </item> + <item> npy_complex120 </item> + <item> npy_complex192 </item> + <item> npy_complex256 </item> + <item> npy_cfloat </item> + <item> npy_cdouble </item> + <item> npy_clongdouble </item> + <item> npy_bool </item> + <item> npy_byte </item> + <item> npy_short </item> + <item> npy_int </item> + <item> npy_long </item> + <item> npy_longlong </item> + <item> npy_ubyte </item> + <item> npy_ushort </item> + <item> npy_uint </item> + <item> npy_ulong </item> + <item> npy_ulonglong </item> + <item> npy_float </item> + <item> npy_double </item> + <item> npy_longdouble </item> + <item> npy_intp </item> + </list> + <list name="numpyfuncs"> + <item> DataSource </item> + <item> MachAr </item> + <item> PackageLoader </item> + <item> RankWarning </item> + <item> Tester </item> + <item> abs </item> + <item> absolute </item> + <item> add </item> + <item> add_docstring </item> + <item> add_newdoc </item> + <item> alen </item> + <item> all </item> + <item> allclose </item> + <item> alltrue </item> + <item> alterdot </item> + <item> amax </item> + <item> amin </item> + <item> angle </item> + <item> any </item> + <item> append </item> + <item> apply_along_axis </item> + <item> apply_over_axes </item> + <item> arange </item> + <item> arccos </item> + <item> arccosh </item> + <item> arcsin </item> + <item> arcsinh </item> + <item> arctan </item> + <item> arctan2 </item> + <item> arctanh </item> + <item> argmax </item> + <item> argmin </item> + <item> argsort </item> + <item> argwhere </item> + <item> around </item> + <item> array </item> + <item> array2string </item> + <item> array_equal </item> + <item> array_equiv </item> + <item> array_repr </item> + <item> array_split </item> + <item> array_str </item> + <item> asanyarray </item> + <item> asarray </item> + <item> asarray_chkfinite </item> + <item> ascontiguousarray </item> + <item> asfarray </item> + <item> asfortranarray </item> + <item> asmatrix </item> + <item> asscalar </item> + <item> atleast_1d </item> + <item> atleast_2d </item> + <item> atleast_3d </item> + <item> average </item> + <item> bartlett </item> + <item> base_repr </item> + <item> bench </item> + <item> binary_repr </item> + <item> bincount </item> + <item> bitwise_and </item> + <item> bitwise_not </item> + <item> bitwise_or </item> + <item> bitwise_xor </item> + <item> blackman </item> + <item> bmat </item> + <item> bool </item> + <item> bool8 </item> + <item> bool_ </item> + <item> broadcast </item> + <item> broadcast_arrays </item> + <item> byte </item> + <item> byte_bounds </item> + <item> can_cast </item> + <item> cdouble </item> + <item> ceil </item> + <item> cfloat </item> + <item> character </item> + <item> chararray </item> + <item> choose </item> + <item> clip </item> + <item> clongdouble </item> + <item> clongfloat </item> + <item> column_stack </item> + <item> common_type </item> + <item> compare_chararrays </item> + <item> complex </item> + <item> complex128 </item> + <item> complex192 </item> + <item> complex64 </item> + <item> complex_ </item> + <item> complexfloating </item> + <item> compress </item> + <item> concatenate </item> + <item> conj </item> + <item> conjugate </item> + <item> convolve </item> + <item> copy </item> + <item> corrcoef </item> + <item> correlate </item> + <item> cos </item> + <item> cosh </item> + <item> cov </item> + <item> cross </item> + <item> csingle </item> + <item> cumprod </item> + <item> cumproduct </item> + <item> cumsum </item> + <item> deg2rad </item> + <item> degrees </item> + <item> delete </item> + <item> deprecate </item> + <item> deprecate_with_doc </item> + <item> diag </item> + <item> diagflat </item> + <item> diagonal </item> + <item> diff </item> + <item> digitize </item> + <item> disp </item> + <item> divide </item> + <item> dot </item> + <item> double </item> + <item> dsplit </item> + <item> dstack </item> + <item> dtype </item> + <item> ediff1d </item> + <item> empty </item> + <item> empty_like </item> + <item> equal </item> + <item> errstate </item> + <item> exp </item> + <item> exp2 </item> + <item> expand_dims </item> + <item> expm1 </item> + <item> extract </item> + <item> eye </item> + <item> fabs </item> + <item> fastCopyAndTranspose </item> + <item> find_common_type </item> + <item> finfo </item> + <item> fix </item> + <item> flatiter </item> + <item> flatnonzero </item> + <item> flexible </item> + <item> fliplr </item> + <item> flipud </item> + <item> float </item> + <item> float32 </item> + <item> float64 </item> + <item> float96 </item> + <item> float_ </item> + <item> floating </item> + <item> floor </item> + <item> floor_divide </item> + <item> fmax </item> + <item> fmin </item> + <item> fmod </item> + <item> frexp </item> + <item> frombuffer </item> + <item> fromfile </item> + <item> fromfunction </item> + <item> fromiter </item> + <item> frompyfunc </item> + <item> fromregex </item> + <item> fromstring </item> + <item> fv </item> + <item> generic </item> + <item> genfromtxt </item> + <item> get_array_wrap </item> + <item> get_include </item> + <item> get_numarray_include </item> + <item> get_numpy_include </item> + <item> get_printoptions </item> + <item> getbuffer </item> + <item> getbufsize </item> + <item> geterr </item> + <item> geterrcall </item> + <item> geterrobj </item> + <item> gradient </item> + <item> greater </item> + <item> greater_equal </item> + <item> hamming </item> + <item> hanning </item> + <item> histogram </item> + <item> histogram2d </item> + <item> histogramdd </item> + <item> hsplit </item> + <item> hstack </item> + <item> hypot </item> + <item> i0 </item> + <item> identity </item> + <item> imag </item> + <item> indices </item> + <item> inexact </item> + <item> info </item> + <item> inner </item> + <item> insert </item> + <item> int </item> + <item> int0 </item> + <item> int16 </item> + <item> int32 </item> + <item> int64 </item> + <item> int8 </item> + <item> int_ </item> + <item> int_asbuffer </item> + <item> intc </item> + <item> integer </item> + <item> interp </item> + <item> intersect1d </item> + <item> intersect1d_nu </item> + <item> intp </item> + <item> invert </item> + <item> ipmt </item> + <item> irr </item> + <item> iscomplex </item> + <item> iscomplexobj </item> + <item> isfinite </item> + <item> isfortran </item> + <item> isinf </item> + <item> isnan </item> + <item> isneginf </item> + <item> isposinf </item> + <item> isreal </item> + <item> isrealobj </item> + <item> isscalar </item> + <item> issctype </item> + <item> issubclass_ </item> + <item> issubdtype </item> + <item> issubsctype </item> + <item> iterable </item> + <item> ix_ </item> + <item> kaiser </item> + <item> kron </item> + <item> ldexp </item> + <item> left_shift </item> + <item> less </item> + <item> less_equal </item> + <item> lexsort </item> + <item> linspace </item> + <item> load </item> + <item> loads </item> + <item> loadtxt </item> + <item> log </item> + <item> log10 </item> + <item> log1p </item> + <item> log2 </item> + <item> logaddexp </item> + <item> logaddexp2 </item> + <item> logical_and </item> + <item> logical_not </item> + <item> logical_or </item> + <item> logical_xor </item> + <item> logspace </item> + <item> long </item> + <item> longcomplex </item> + <item> longdouble </item> + <item> longfloat </item> + <item> longlong </item> + <item> lookfor </item> + <item> mafromtxt </item> + <item> mat </item> + <item> matrix </item> + <item> max </item> + <item> maximum </item> + <item> maximum_sctype </item> + <item> may_share_memory </item> + <item> mean </item> + <item> median </item> + <item> memmap </item> + <item> meshgrid </item> + <item> min </item> + <item> minimum </item> + <item> mintypecode </item> + <item> mirr </item> + <item> mod </item> + <item> modf </item> + <item> msort </item> + <item> multiply </item> + <item> nan_to_num </item> + <item> nanargmax </item> + <item> nanargmin </item> + <item> nanmax </item> + <item> nanmin </item> + <item> nansum </item> + <item> ndarray </item> + <item> ndenumerate </item> + <item> ndfromtxt </item> + <item> ndim </item> + <item> ndindex </item> + <item> negative </item> + <item> newbuffer </item> + <item> nonzero </item> + <item> not_equal </item> + <item> nper </item> + <item> npv </item> + <item> number </item> + <item> obj2sctype </item> + <item> object </item> + <item> object0 </item> + <item> object_ </item> + <item> ones </item> + <item> ones_like </item> + <item> outer </item> + <item> packbits </item> + <item> piecewise </item> + <item> pkgload </item> + <item> place </item> + <item> pmt </item> + <item> poly </item> + <item> poly1d </item> + <item> polyadd </item> + <item> polyder </item> + <item> polydiv </item> + <item> polyfit </item> + <item> polyint </item> + <item> polymul </item> + <item> polysub </item> + <item> polyval </item> + <item> power </item> + <item> ppmt </item> + <item> prod </item> + <item> product </item> + <item> ptp </item> + <item> put </item> + <item> putmask </item> + <item> pv </item> + <item> rad2deg </item> + <item> radians </item> + <item> rank </item> + <item> rate </item> + <item> ravel </item> + <item> real </item> + <item> real_if_close </item> + <item> recarray </item> + <item> recfromcsv </item> + <item> recfromtxt </item> + <item> reciprocal </item> + <item> record </item> + <item> remainder </item> + <item> repeat </item> + <item> require </item> + <item> reshape </item> + <item> resize </item> + <item> restoredot </item> + <item> right_shift </item> + <item> rint </item> + <item> roll </item> + <item> rollaxis </item> + <item> roots </item> + <item> rot90 </item> + <item> round </item> + <item> round_ </item> + <item> row_stack </item> + <item> safe_eval </item> + <item> save </item> + <item> savetxt </item> + <item> savez </item> + <item> sctype2char </item> + <item> searchsorted </item> + <item> select </item> + <item> set_numeric_ops </item> + <item> set_printoptions </item> + <item> set_string_function </item> + <item> setbufsize </item> + <item> setdiff1d </item> + <item> seterr </item> + <item> seterrcall </item> + <item> seterrobj </item> + <item> setmember1d </item> + <item> setxor1d </item> + <item> shape </item> + <item> short </item> + <item> show_config </item> + <item> sign </item> + <item> signbit </item> + <item> signedinteger </item> + <item> sin </item> + <item> sinc </item> + <item> single </item> + <item> singlecomplex </item> + <item> sinh </item> + <item> size </item> + <item> sometrue </item> + <item> sort </item> + <item> sort_complex </item> + <item> source </item> + <item> split </item> + <item> sqrt </item> + <item> square </item> + <item> squeeze </item> + <item> std </item> + <item> str </item> + <item> str_ </item> + <item> string0 </item> + <item> string_ </item> + <item> subtract </item> + <item> sum </item> + <item> swapaxes </item> + <item> take </item> + <item> tan </item> + <item> tanh </item> + <item> tensordot </item> + <item> test </item> + <item> tile </item> + <item> trace </item> + <item> transpose </item> + <item> trapz </item> + <item> tri </item> + <item> tril </item> + <item> trim_zeros </item> + <item> triu </item> + <item> true_divide </item> + <item> trunc </item> + <item> typename </item> + <item> ubyte </item> + <item> ufunc </item> + <item> uint </item> + <item> uint0 </item> + <item> uint16 </item> + <item> uint32 </item> + <item> uint64 </item> + <item> uint8 </item> + <item> uintc </item> + <item> uintp </item> + <item> ulonglong </item> + <item> unicode </item> + <item> unicode0 </item> + <item> unicode_ </item> + <item> union1d </item> + <item> unique </item> + <item> unique1d </item> + <item> unpackbits </item> + <item> unravel_index </item> + <item> unsignedinteger </item> + <item> unwrap </item> + <item> ushort </item> + <item> vander </item> + <item> var </item> + <item> vdot </item> + <item> vectorize </item> + <item> void </item> + <item> void0 </item> + <item> vsplit </item> + <item> vstack </item> + <item> where </item> + <item> who </item> + <item> zeros </item> + <item> zeros_like </item> + </list> + <list name="specialvars"> + <item> __future__ </item> + <item> __import__ </item> + <item> __name__ </item> + <item> __cythonbufferdefaults__ </item> + <item> __weakref__ </item> + <item> None </item> + <item> self </item> + <item> True </item> + <item> False </item> + <item> NotImplemented </item> + <item> Ellipsis </item> + <item> NULL </item> + </list> + <list name="overloaders"> + <item>__new__</item> + <item>__init__</item> + <item> __cinit__ </item> + <item> __dealloc__ </item> + <item> __cmp__ </item> + <item> __richcmp__ </item> + <item> __str__ </item> + <item> __repr__ </item> + <item> __hash__ </item> + <item> __call__ </item> + <item> __iter__ </item> + <item> __getattr__ </item> + <item> __setattr__ </item> + <item> __delattr__ </item> + <item> __add__ </item> + <item> __sub__ </item> + <item> __mul__ </item> + <item> __div__ </item> + <item> __floordiv__ </item> + <item> __truediv__ </item> + <item> __mod__ </item> + <item> __divmod__ </item> + <item> __pow__ </item> + <item> __neg__ </item> + <item> __pos__ </item> + <item> __abs__ </item> + <item> __nonzero__ </item> + <item> __invert__ </item> + <item> __lshift__ </item> + <item> __rshift__ </item> + <item> __and__ </item> + <item> __or__ </item> + <item> __xor__ </item> + <item> __int__ </item> + <item> __long__ </item> + <item> __float__ </item> + <item> __oct__ </item> + <item> __hex__ </item> + <item> __index__ </item> + <item> __iadd__ </item> + <item> __isub__ </item> + <item> __imul__ </item> + <item> __idiv__ </item> + <item> __ifloordiv__ </item> + <item> __itruediv__ </item> + <item> __imod__ </item> + <item> __ipow__ </item> + <item> __ilshift__ </item> + <item> __irshift__ </item> + <item> __iand__ </item> + <item> __ior__ </item> + <item> __ixor__ </item> + <item> __len__ </item> + <item> __getitem__ </item> + <item> __setitem__ </item> + <item> __delitem__ </item> + <item> __getslice__ </item> + <item> __setslice__ </item> + <item> __delslice__ </item> + <item> __contains__ </item> + <item> __next__ </item> + <item> __getreadbuffer__ </item> + <item> __getwritebuffer__ </item> + <item> __getsegcount__ </item> + <item> __getcharbuffer__ </item> + <item> __get__ </item> + <item> __set__ </item> + <item> __delete__ </item> + <item> __getbuffer__ </item> + <item> __releasebuffer__ </item> + </list> + <list name="exceptions"> + <item>ArithmeticError</item> + <item>AssertionError</item> + <item>AttributeError</item> + <item>BaseException</item> + <item>DeprecationWarning</item> + <item>EnvironmentError</item> + <item>EOFError</item> + <item>Exception</item> + <item>FloatingPointError</item> + <item>FutureWarning</item> + <item>GeneratorExit</item> + <item>IOError</item> + <item>ImportError</item> + <item>ImportWarning</item> + <item>IndexError</item> + <item>KeyError</item> + <item>KeyboardInterrupt</item> + <item>LookupError</item> + <item>MemoryError</item> + <item>NameError</item> + <item>NotImplementedError</item> + <item>OSError</item> + <item>OverflowError</item> + <item>PendingDeprecationWarning</item> + <item>ReferenceError</item> + <item>RuntimeError</item> + <item>RuntimeWarning</item> + <item>StandardError</item> + <item>StopIteration</item> + <item>SyntaxError</item> + <item>SyntaxWarning</item> + <item>SystemError</item> + <item>SystemExit</item> + <item>TypeError</item> + <item>UnboundLocalError</item> + <item>UserWarning</item> + <item>UnicodeError</item> + <item>UnicodeWarning</item> + <item>UnicodeEncodeError</item> + <item>UnicodeDecodeError</item> + <item>UnicodeTranslateError</item> + <item>ValueError</item> + <item>Warning</item> + <item>WindowsError</item> + <item>ZeroDivisionError</item> + </list> + + <contexts> + + <context name="Normal" attribute="Normal Text" lineEndContext="#stay"> + + <keyword attribute="Definition Keyword" String="cdef" context="cdefname"/> + <keyword attribute="Definition Keyword" String="defs" context="defname"/> + <keyword attribute="Definition Keyword" String="keyw" context="#stay"/> + + <keyword attribute="Import Keyword" String="imports" context="#stay"/> + <keyword attribute="Preprocessor" String="prep" context="#stay"/> + <keyword attribute="Operator" String="operators" context="#stay"/> + <keyword attribute="Command Keyword" String="commands" context="#stay"/> + <keyword attribute="Flow Control Keyword" String="flow" context="#stay"/> + <keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/> + + <keyword attribute="Special Variable" String="specialvars" context="#stay"/> + <keyword attribute="Special Variable" String="exceptions" context="#stay"/> + <keyword attribute="Special Variable" String="overloaders" context="#stay"/> + + <keyword attribute="C Type" context="#stay" String="ctypes" /> + <keyword attribute="Python Type" context="#stay" String="pytypes" /> + + <RegExpr attribute="Hex" String="0[Xx][0-9a-fA-F]+" context="#stay"/> + <RegExpr attribute="Octal" String="0[1-9][0-9]*" context="#stay"/> + <RegExpr attribute="Binary" String="0[Bb][0-9a-fA-F]+" context="#stay"/> + + <RegExpr attribute="Complex" String=" ((([0-9]*\.[0-9]+|[0-9]+\.)|([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.))[eE](\+|-)?[0-9]+)|[0-9]+)[jJ]" context="#stay"/> + <RegExpr attribute="Float" String="([0-9]+\.[0-9]*|\.[0-9]+)([eE][0-9]+)?" context="#stay"/> + + <RegExpr attribute="Int" String="([1-9][0-9]*([eE][0-9]+)?|0)" context="#stay"/> + <RegExpr attribute="Long" String="[1-9][0-9]*([eE][0-9.]+)?[Ll]" context="#stay"/> + + <keyword attribute="NumPyAttr" String="numpyselector" context="numpy"/> + + <RegExpr attribute="Decorator" String="@[a-zA-Z_][a-zA-Z_0-9\.]+" context="#stay"/> + + <RegExpr attribute="Normal" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/> + + <RegExpr attribute="Raw String" String="[rR]'''" context="Raw Tripple A-string"/> + <RegExpr attribute="Raw String" String="[rR]"""" context="Raw Tripple Q-string"/> + + <RegExpr attribute="Raw String" String="[rR]'" context="Raw A-string"/> + <RegExpr attribute="Raw String" String="[rR]"" context="Raw Q-string"/> + + <RegExpr attribute="Comment" String="#.*$" context="#stay"/> + <RegExpr attribute="Comment" String="^\s*'''" context="Tripple A-comment" beginRegion="Tripple A-region"/> + <RegExpr attribute="Comment" String="^\s*"""" context="Tripple Q-comment" beginRegion="Tripple Q-region"/> + + <StringDetect attribute="String" String="'''" context="Tripple A-string" beginRegion="Tripple A-region"/> + <StringDetect attribute="String" String=""""" context="Tripple Q-string" beginRegion="Tripple Q-region"/> + <DetectChar attribute="String" char="'" context="Single A-string"/> + <DetectChar attribute="String" char=""" context="Single Q-string"/> + + + <DetectChar attribute="Operator" char="(" context="parenthesis" /> + + <DetectChar attribute="Operator" char="[" context="bracet" /> + + <DetectChar attribute="Operator" char="{" context="dict" /> + + <RegExpr attribute="Operator" String="[+*/%\|=;\!<>!^&~-]" context="#stay"/> + + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + + </context> + + <context name="numpy" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True"> + <!-- highlight types in numpy.pxd after cimport numpy --> + <keyword attribute="Import Keyword" context="#pop" String="as" /> + <DetectChar attribute="Dot" context="#stay" char="." /> + <keyword attribute="NumPy Type" context="#pop" String="numpytypes" /> + <keyword attribute="NumPy Function" context="#pop" String="numpyfuncs" /> + </context> + + <context name="parenthesis" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True"> + <DetectChar attribute="Operator" char=")" context="#pop" /> + <IncludeRules context="Normal" /> + </context> + + <context name="bracet" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True"> + <StringDetect attribute="Normal" String="readonly" context="#stay" /> + <DetectChar attribute="Operator" char="]" context="#pop" /> + <IncludeRules context="Normal" /> + </context> + + <context name="dict" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True"> + <DetectChar attribute="Operator" char="}" context="#pop" /> + <IncludeRules context="Normal" /> + </context> + + <context name="defname" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True"> + <RegExpr attribute="Definition Name" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/> + <DetectChar attribute="Operator" char="(" context="callargs" /> + <DetectChar attribute="Operator" char="[" context="callbracket" /> + <IncludeRules context="Normal" /> + </context> + + <context name="callargs" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True"> + <DetectChar attribute="Operator" char=")" context="#pop#pop" /> + <IncludeRules context="Normal" /> + </context> + + <context name="callbracket" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True"> + <DetectChar attribute="Operator" char="]" context="#pop#pop" /> + <IncludeRules context="Normal" /> + </context> + + + <context name="cdefname" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True"> + <keyword attribute="Definition Keyword" String="defs" context="defname"/> + <keyword attribute="Definition Keyword" String="keyw" context="#stay"/> + <keyword attribute="Definition Keyword" String="access" context="#stay"/> + <keyword attribute="Import Keyword" String="imports" context="#stay"/> + <keyword attribute="Special Variable" String="specialvars" context="#stay"/> + + <keyword attribute="C Type" context="#pop" String="ctypes" /> + <keyword attribute="Python Type" context="#pop" String="pytypes" /> + + <RegExpr attribute="Hex" String="0[Xx][0-9a-fA-F]+" context="#stay"/> + <RegExpr attribute="Octal" String="0[1-9][0-9]*" context="#stay"/> + <RegExpr attribute="Binary" String="0[Bb][0-9a-fA-F]+" context="#stay"/> + + <RegExpr attribute="Complex" String=" ((([0-9]*\.[0-9]+|[0-9]+\.)|([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.))[eE](\+|-)?[0-9]+)|[0-9]+)[jJ]" context="#stay"/> + <RegExpr attribute="Float" String="([0-9]+\.[0-9]*|\.[0-9]+)([eE][0-9]+)?" context="#stay"/> + + <RegExpr attribute="Int" String="([1-9][0-9]*([eE][0-9]+)?|0)" context="#stay"/> + <RegExpr attribute="Long" String="[1-9][0-9]*([eE][0-9.]+)?[Ll]" context="#stay"/> + + <keyword attribute="NumPyAttr" String="numpyselector" context="numpy2"/> + + <RegExpr attribute="C Definition Name" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/> + <DetectChar attribute="Operator" char="(" context="callargs" /> + <IncludeRules context="Normal" /> + </context> + + <context name="callargs" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True"> + <DetectChar attribute="Operator" char=")" context="#pop#pop" /> + <IncludeRules context="Normal" /> + </context> + + + + + + + + + <context name="numpy2" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True"> + <!-- highlight types in numpy.pxd after cimport numpy --> + <DetectChar attribute="Dot" context="#stay" char="." /> + <keyword attribute="NumPy Type" context="#pop#pop" String="numpytypes" /> + </context> + + + + + <context name="Tripple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="True"> + <StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Tripple A-region"/> + </context> + <context name="Tripple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="True"> + <HlCChar attribute="Comment" context="#stay"/> + <RegExpr attribute="Comment" String=""""" context="#pop" endRegion="Tripple Q-region"/> + </context> + <context name="Tripple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="True"> + <HlCStringChar attribute="String Char" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/> + </context> + <context name="Raw Tripple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="True"> + <HlCStringChar attribute="Raw String" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/> + </context> + <context name="Tripple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="True"> + <HlCStringChar attribute="String Char" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String" String=""""" context="#pop" endRegion="Tripple Q-region"/> + </context> + <context name="Raw Tripple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="True"> + <HlCStringChar attribute="Raw String" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String" String=""""" context="#pop" endRegion="Tripple Q-region"/> + </context> + <context name="Single A-comment" attribute="Comment" lineEndContext="#stay"> + <HlCStringChar attribute="Comment" context="#stay"/> + <DetectChar attribute="Comment" char="'" context="#pop"/> + </context> + <context name="Single Q-comment" attribute="Comment" lineEndContext="#stay"> + <HlCStringChar attribute="Comment" context="#stay"/> + <DetectChar attribute="Comment" char=""" context="#pop"/> + </context> + <context name="Single A-string" attribute="String" lineEndContext="#stay"> + <HlCStringChar attribute="String Char" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <DetectChar attribute="String" char="'" context="#pop"/> + </context> + <context name="Single Q-string" attribute="String" lineEndContext="#stay"> + <HlCStringChar attribute="String Char" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <DetectChar attribute="String" char=""" context="#pop"/> + </context> + <context name="Raw A-string" attribute="Raw String" lineEndContext="#stay"> + <HlCStringChar attribute="Raw String" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <DetectChar attribute="Raw String" char="'" context="#pop"/> + </context> + <context name="Raw Q-string" attribute="Raw String" lineEndContext="#stay"> + <HlCStringChar attribute="Raw String" context="#stay"/> + <RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/> + <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> + <DetectChar attribute="Raw String" char=""" context="#pop"/> + </context> + </contexts> + <itemDatas> + <itemData name="Normal Text" defStyleNum="dsNormal"/> + <itemData name="Import Keyword" defStyleNum="dsKeyword"/> + <itemData name="Definition Keyword" defStyleNum="dsKeyword"/> + <itemData name="Definition Name" defStyleNum="dsOthers"/> + <itemData name="Operator" defStyleNum="dsKeyword"/> + <itemData name="String Substitution" defStyleNum="dsNormal"/> + <itemData name="Command Keyword" defStyleNum="dsFunction"/> + <itemData name="Flow Control Keyword" defStyleNum="dsKeyword"/> + <itemData name="Builtin Function" defStyleNum="dsFunction"/> + <itemData name="C Type" defStyleNum="dsDataType"/> + <itemData name="Python Type" defStyleNum="dsDataType"/> + <itemData name="NumPy Type" defStyleNum="dsDataType"/> + <itemData name="NumPy Function" defStyleNum="dsFunction"/> + <itemData name="Special Variable" defStyleNum="dsOthers"/> + <itemData name="Preprocessor" defStyleNum="dsOthers"/> + <itemData name="Decorator" defStyleNum="dsFunction"/> + <itemData name="String Char" defStyleNum="dsChar"/> + <itemData name="Long" defStyleNum="dsOthers"/> + <itemData name="Float" defStyleNum="dsFloat"/> + <itemData name="Int" defStyleNum="dsDecVal"/> + <itemData name="Hex" defStyleNum="dsOthers"/> + <itemData name="Octal" defStyleNum="dsOthers"/> + <itemData name="Binary" defStyleNum="dsOthers"/> + <itemData name="Complex" defStyleNum="dsOthers"/> + <itemData name="Comment" defStyleNum="dsComment"/> + <itemData name="String" defStyleNum="dsString"/> + <itemData name="Raw String" defStyleNum="dsString"/> + </itemDatas> + </highlighting> + <general> + <folding indentationsensitive="1" /> + <emptyLines> + <emptyLine regexpr="\s+" casesensitive="false"/> + <emptyLine regexpr="\s*#.*$" casesensitive="false"/> + </emptyLines> + <comments> + <comment name="singleLine" start="#" position="afterwhitespace"/> + </comments> + <keywords casesensitive="1"/> + </general> +</language>