feat: add missing KF6 framework recipes
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# create a directory for generated definitions
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/generated/syntax)
|
||||
|
||||
macro(generate_syntax_definition generator targetFile srcFile)
|
||||
add_custom_target(
|
||||
${targetFile} ALL
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/generated/syntax/${targetFile}
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated/syntax/${targetFile}
|
||||
COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generators/${generator}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/syntax/${srcFile}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/generated/syntax/${targetFile}
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/generators/${generator}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/syntax/${srcFile}
|
||||
${ARGN}
|
||||
VERBATIM
|
||||
)
|
||||
set(gen_defs ${gen_defs} ${CMAKE_CURRENT_BINARY_DIR}/generated/syntax/${targetFile})
|
||||
endmacro()
|
||||
|
||||
macro(generate_syntax_definition_with_html syntax mergedSyntax)
|
||||
generate_syntax_definition(generate-html.pl ${mergedSyntax}-${syntax}.xml ${mergedSyntax}.xml ${CMAKE_CURRENT_SOURCE_DIR}/syntax/${syntax}.xml)
|
||||
endmacro()
|
||||
|
||||
# generate PHP definitions
|
||||
generate_syntax_definition_with_html(php html)
|
||||
generate_syntax_definition_with_html(php css)
|
||||
generate_syntax_definition_with_html(php javascript)
|
||||
generate_syntax_definition_with_html(php javascript-react)
|
||||
generate_syntax_definition_with_html(php typescript)
|
||||
generate_syntax_definition_with_html(php mustache)
|
||||
|
||||
# generate Twig definitions
|
||||
generate_syntax_definition_with_html(twig html)
|
||||
generate_syntax_definition_with_html(twig css)
|
||||
generate_syntax_definition_with_html(twig javascript)
|
||||
generate_syntax_definition_with_html(twig javascript-react)
|
||||
generate_syntax_definition_with_html(twig typescript)
|
||||
|
||||
# generate DoxygenLua definition
|
||||
generate_syntax_definition(generate-doxygenlua.pl doxygenlua.xml doxygen.xml)
|
||||
|
||||
# find all definitions
|
||||
file(GLOB src_defs "${CMAKE_CURRENT_SOURCE_DIR}/syntax/*.xml")
|
||||
set(defs ${src_defs} ${gen_defs})
|
||||
|
||||
# object library to make cross-folder dependencies work
|
||||
add_library(SyntaxHighlightingData OBJECT)
|
||||
|
||||
# theme data resource
|
||||
target_sources(SyntaxHighlightingData PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/themes/theme-data.qrc)
|
||||
|
||||
# generate the resource file
|
||||
set(compressed_xml_dir ${CMAKE_CURRENT_BINARY_DIR}/generated/compressed-syntax)
|
||||
set(qrc_xml_file ${CMAKE_CURRENT_BINARY_DIR}/syntax-data-xml.qrc)
|
||||
set(qrc_file ${CMAKE_CURRENT_BINARY_DIR}/syntax-data.qrc)
|
||||
set(qrc_xml_body "")
|
||||
set(qrc_body "")
|
||||
foreach(def ${defs})
|
||||
get_filename_component(def_name ${def} NAME)
|
||||
string(APPEND qrc_body "<file alias=\"${def_name}\">${compressed_xml_dir}/${def_name}</file>\n")
|
||||
string(APPEND qrc_xml_body "<file>${def}</file>\n")
|
||||
set(compressedDefs ${compressedDefs} ${compressed_xml_dir}/${def_name})
|
||||
endforeach()
|
||||
write_file(${qrc_xml_file} "<!DOCTYPE RCC>\n<RCC>${qrc_xml_body}</RCC>")
|
||||
set(SYNTAX_DATA_QRC_FILES_STRING ${qrc_body})
|
||||
configure_file(syntax-data.qrc.in ${qrc_file} @ONLY)
|
||||
|
||||
# compress xml files
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${compressed_xml_dir})
|
||||
|
||||
# generate the index file
|
||||
add_custom_target(katesyntax DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/index.katesyntax")
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/index.katesyntax"
|
||||
COMMAND katehighlightingindexer
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/index.katesyntax"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/schema/language.xsd"
|
||||
"${qrc_xml_file}"
|
||||
"${compressed_xml_dir}"
|
||||
DEPENDS katehighlightingindexer
|
||||
${defs}
|
||||
${qrc_file}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/schema/language.xsd
|
||||
)
|
||||
|
||||
# do we want syntax files bundled in the library?
|
||||
if (QRC_SYNTAX)
|
||||
# generate the qrc file manually, to make dependencies on generated files work...
|
||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/qrc_syntax-data.cpp"
|
||||
COMMAND Qt6::rcc --name syntax_data -o "${CMAKE_CURRENT_BINARY_DIR}/qrc_syntax-data.cpp" "${qrc_file}"
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/index.katesyntax
|
||||
)
|
||||
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/qrc_syntax-data.cpp" PROPERTIES SKIP_AUTOMOC ON)
|
||||
|
||||
target_sources(SyntaxHighlightingData PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/qrc_syntax-data.cpp)
|
||||
else()
|
||||
add_dependencies(SyntaxHighlightingData katesyntax)
|
||||
# install the syntax files as normal files into the prefix
|
||||
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/index.katesyntax" ${compressedDefs} DESTINATION ${KDE_INSTALL_DATADIR}/org.kde.syntax-highlighting/syntax-bundled)
|
||||
endif()
|
||||
|
||||
# set PIC to allow use in static and shared libs
|
||||
# this needs some more recent CMake than generally required
|
||||
set_property(TARGET SyntaxHighlightingData PROPERTY POSITION_INDEPENDENT_CODE 1)
|
||||
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.13.0")
|
||||
target_link_libraries(SyntaxHighlightingData PRIVATE Qt6::Core)
|
||||
endif()
|
||||
@@ -0,0 +1 @@
|
||||
Pipfile.lock
|
||||
@@ -0,0 +1,12 @@
|
||||
# kate: hl toml;
|
||||
|
||||
[[source]]
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
click = "~= 8.0"
|
||||
jinja2 = "~= 3.0"
|
||||
lxml = "*"
|
||||
PyYAML = "*"
|
||||
@@ -0,0 +1,501 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!-- NOTE See https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#variable-references -->
|
||||
<!ENTITY var_ref_re "[/\.\+\-_0-9A-Za-z]+">
|
||||
<!-- NOTE See `cmGeneratorExpression::IsValidTargetName` -->
|
||||
<!ENTITY tgt_name_re "[A-Za-z0-9_\.\+\-]+">
|
||||
]>
|
||||
<!--
|
||||
This file is part of KDE's kate project.
|
||||
|
||||
SPDX-FileCopyrightText: 2004 Alexander Neundorf <neundorf@kde.org>
|
||||
SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
|
||||
SPDX-FileCopyrightText: 2007, 2008, 2013, 2014 Matthew Woehlke <mw_triad@users.sourceforge.net>
|
||||
SPDX-FileCopyrightText: 2013-2015, 2017-2023 Alex Turbov <i.zaufi@gmail.com>
|
||||
|
||||
SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
-->
|
||||
|
||||
<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT *****
|
||||
$ cd data/generators
|
||||
$ ./generate-cmake-syntax.py cmake.yaml > ../syntax/cmake.xml
|
||||
-->
|
||||
|
||||
<language
|
||||
name="CMake"
|
||||
version="<!--{version}-->"
|
||||
kateversion="5.62"
|
||||
section="Other"
|
||||
extensions="CMakeLists.txt;*.cmake;*.cmake.in"
|
||||
style="CMake"
|
||||
mimetype="text/x-cmake"
|
||||
author="Alex Turbov (i.zaufi@gmail.com)"
|
||||
license="LGPLv2+"
|
||||
>
|
||||
<highlighting>
|
||||
|
||||
<list name="commands">
|
||||
<!--[- for command in commands ]-->
|
||||
<item><!--{command.name}--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<!--[- macro render_command_arg_lists(commands) ]-->
|
||||
<!--[- for command in commands -]-->
|
||||
<!--[- if command.named_args and command.named_args.kw ]-->
|
||||
<list name="<!--{command.name}-->_nargs">
|
||||
<!--[- for arg in command.named_args.kw ]-->
|
||||
<item><!--{arg}--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.special_args and command.special_args.kw ]-->
|
||||
<list name="<!--{command.name}-->_sargs">
|
||||
<!--[- for arg in command.special_args.kw ]-->
|
||||
<item><!--{arg}--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
<!--[- endif ]-->
|
||||
<!--[- endfor ]-->
|
||||
<!--[- endmacro ]-->
|
||||
<!--{- render_command_arg_lists(commands) }-->
|
||||
<!--{- render_command_arg_lists(standard_module_commands) }-->
|
||||
|
||||
<list name="variables">
|
||||
<!--[- for var in variables.kw ]-->
|
||||
<item><!--{var}--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<list name="deprecated-or-internal-variables">
|
||||
<!--[- for var in deprecated_or_internal_variables.kw ]-->
|
||||
<item><!--{var}--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<list name="environment-variables">
|
||||
<!--[- for var in environment_variables.kw ]-->
|
||||
<item><!--{var}--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<!--[- for kind in properties.kinds ]-->
|
||||
<list name="<!--{ kind|replace('_', '-') }-->">
|
||||
<!--[- for prop in properties[kind].kw ]-->
|
||||
<item><!--{prop}--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
<!--[- endfor ]-->
|
||||
|
||||
<list name="generator-expressions">
|
||||
<!--[- for expr in generator_expressions ]-->
|
||||
<item><!--{ expr }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
<!--[- for expr in complex_generator_expressions ]-->
|
||||
<list name="genex-<!--{expr.name}-->-subcommands">
|
||||
<!--[- for cmd in expr.subcommands ]-->
|
||||
<item><!--{ cmd }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
<!--[- endfor ]-->
|
||||
|
||||
<list name="standard-modules">
|
||||
<!--[- for module in modules.utility ]-->
|
||||
<item><!--{ module }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<list name="standard-finder-modules">
|
||||
<!--[- for module in modules.finder ]-->
|
||||
<item><!--{ module | replace('Find', '') }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<list name="deprecated-modules">
|
||||
<!--[- for module in modules.deprecated ]-->
|
||||
<item><!--{ module }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
|
||||
<list name="true_special_arg">
|
||||
<item>TRUE</item>
|
||||
<item>ON</item>
|
||||
<item>YES</item>
|
||||
<item>Y</item>
|
||||
<item>0</item>
|
||||
</list>
|
||||
|
||||
<!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
|
||||
<list name="false_special_arg">
|
||||
<item>FALSE</item>
|
||||
<item>OFF</item>
|
||||
<item>NO</item>
|
||||
<item>IGNORE</item>
|
||||
<item>N</item>
|
||||
<item>0</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
|
||||
<DetectSpaces />
|
||||
<!--[ for command in commands -]-->
|
||||
<WordDetect String="<!--{command.name}-->" insensitive="true" attribute="<!--{command.attribute}-->" context="<!--{command.name}-->_ctx"<!--[ if command.start_region ]--> beginRegion="<!--{command.start_region}-->"<!--[ endif -]--> <!--[- if command.end_region ]--> endRegion="<!--{command.end_region}-->"<!--[ endif ]--> />
|
||||
<!--[ endfor -]-->
|
||||
<!--[ for command in standard_module_commands -]-->
|
||||
<WordDetect String="<!--{command.name}-->" insensitive="true" attribute="CMake Provided Function/Macro" context="<!--{command.name}-->_ctx" />
|
||||
<!--[ endfor -]-->
|
||||
<DetectChar attribute="Comment" context="Match Comments and Docs" char="#" lookAhead="true" />
|
||||
<DetectIdentifier attribute="User Function/Macro" context="User Function" />
|
||||
<RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&var_ref_re;@" lookAhead="true" />
|
||||
<IncludeRules context="LineError" />
|
||||
</context>
|
||||
<!--[- macro render_command_parsers(commands) ]-->
|
||||
<!--[ for command in commands -]-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx">
|
||||
<DetectChar attribute="Normal Text" context="<!--{command.name}-->_ctx_op<!--{'_tgt_first' if command.first_arg_is_target else '_tgts_first' if command.first_args_are_targets else ''}-->" char="(" />
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=")" />
|
||||
</context>
|
||||
<!--[- if command.first_arg_is_target ]-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op_tgt_first">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Aliased Targets" context="<!--{command.name}-->_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*" />
|
||||
<RegExpr attribute="Targets" context="<!--{command.name}-->_ctx_op" String="&tgt_name_re;" />
|
||||
<IncludeRules context="User Function Opened" />
|
||||
<IncludeRules context="LineError" />
|
||||
</context>
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.first_args_are_targets ]-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op_tgts_first">
|
||||
<DetectSpaces />
|
||||
<!--[- if command.named_args and command.named_args.kw ]-->
|
||||
<!-- NOTE Handle the only case in CMake nowadays:
|
||||
1. `set_target_properties` have a named keyword (`PROPERTIES`) after targets list
|
||||
-->
|
||||
<keyword context="<!--{command.name}-->_ctx_op" String="<!--{command.name}-->_nargs" lookAhead="true" />
|
||||
<!--[- endif ]-->
|
||||
<IncludeRules context="Detect Aliased Targets" />
|
||||
<IncludeRules context="Detect Targets" />
|
||||
<IncludeRules context="User Function Opened" />
|
||||
<IncludeRules context="LineError" />
|
||||
</context>
|
||||
<!--[- endif ]-->
|
||||
<!--[- if not command.first_args_are_targets or (command.named_args and command.named_args.kw) ]-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op">
|
||||
<DetectSpaces />
|
||||
<!--[- if command.nested_parentheses ]-->
|
||||
<DetectChar attribute="Normal Text" context="<!--{command.name}-->_ctx_op_nested" char="(" />
|
||||
<!--[- endif ]-->
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
|
||||
<!--[- if command.named_args and command.named_args.kw ]-->
|
||||
<!--[- if command.has_target_name_after_kw ]-->
|
||||
<WordDetect String="<!--{command.has_target_name_after_kw}-->" attribute="Named Args" context="Target Name" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.has_target_names_after_kw ]-->
|
||||
<!--[- for kw in command.has_target_names_after_kw ]-->
|
||||
<WordDetect String="<!--{kw}-->" attribute="Named Args" context="<!--{command.name}-->_tgts" />
|
||||
<!--[- endfor ]-->
|
||||
<!--[- endif ]-->
|
||||
<keyword attribute="Named Args" context="#stay" String="<!--{command.name}-->_nargs" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.name == 'include' ]-->
|
||||
<keyword attribute="Standard Module" context="#stay" String="standard-modules" />
|
||||
<keyword attribute="Deprecated Module" context="#stay" String="deprecated-modules" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.name == 'find_package' ]-->
|
||||
<keyword attribute="Standard Module" context="#stay" String="standard-finder-modules" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.special_args and command.special_args.kw ]-->
|
||||
<keyword attribute="Special Args" context="#stay" String="<!--{command.name}-->_sargs" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.property_args and command.property_args.kw ]-->
|
||||
<!--[- for kind in command.property_args.kw ]-->
|
||||
<keyword attribute="Property" context="#stay" String="<!--{kind}-->" />
|
||||
<!--[- if properties[kind|replace('-', '_')].re ]-->
|
||||
<IncludeRules context="Detect More <!--{kind}-->" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- endfor ]-->
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command is not nulary ]-->
|
||||
<IncludeRules context="User Function Args" />
|
||||
<!--[- if command.name == 'cmake_policy' ]-->
|
||||
<!-- NOTE Handle CMP<NNN> as a special arg of `cmake_policy` command -->
|
||||
<RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- endif ]-->
|
||||
</context>
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.has_target_names_after_kw ]-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_tgts">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
|
||||
<keyword attribute="Named Args" context="#pop" String="<!--{command.name}-->_nargs" lookAhead="true" />
|
||||
<IncludeRules context="Detect Aliased Targets" />
|
||||
<IncludeRules context="Detect Targets" />
|
||||
<IncludeRules context="User Function Args" />
|
||||
<IncludeRules context="LineError" />
|
||||
</context>
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.nested_parentheses ]-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op_nested">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=")" />
|
||||
<DetectChar attribute="Normal Text" context="<!--{command.name}-->_ctx_op_nested" char="(" />
|
||||
<!--[- if command.named_args and command.named_args.kw ]-->
|
||||
<keyword attribute="Named Args" context="#stay" String="<!--{command.name}-->_nargs" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.special_args and command.special_args.kw ]-->
|
||||
<keyword attribute="Special Args" context="#stay" String="<!--{command.name}-->_sargs" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if command.property_args and command.property_args.kw ]-->
|
||||
<!--[- for kind in command.property_args.kw ]-->
|
||||
<keyword attribute="Property" context="#stay" String="<!--{kind}-->" />
|
||||
<!--[- if properties[kind|replace('-', '_')].re ]-->
|
||||
<IncludeRules context="Detect More <!--{kind}-->" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- endfor ]-->
|
||||
<!--[- endif ]-->
|
||||
<IncludeRules context="User Function Args" />
|
||||
</context>
|
||||
<!--[- endif ]-->
|
||||
<!--[ endfor -]-->
|
||||
<!--[- endmacro -]-->
|
||||
<!--{- render_command_parsers(commands) -}-->
|
||||
<!--{- render_command_parsers(standard_module_commands) -}-->
|
||||
<!--[ for kind in properties.kinds if properties[kind].re -]-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect More <!--{ kind|replace('_', '-') }-->">
|
||||
<RegExpr attribute="Property" context="#stay" String="<!--{properties[kind].re}-->" />
|
||||
</context><!--{ '\n' }-->
|
||||
<!--[ endfor -]-->
|
||||
|
||||
<context attribute="User Function/Macro" lineEndContext="#stay" name="User Function">
|
||||
<DetectChar attribute="Normal Text" context="User Function Opened" char="(" />
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=")" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="User Function Opened">
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
|
||||
<IncludeRules context="User Function Args" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
|
||||
<RegExpr attribute="Internal Name" context="#stay" String="\b_&var_ref_re;\b" />
|
||||
<keyword attribute="CMake Internal Variable" context="#stay" String="deprecated-or-internal-variables" insensitive="false" />
|
||||
<keyword attribute="Builtin Variable" context="#stay" String="variables" insensitive="false" />
|
||||
<IncludeRules context="Detect More Builtin Variables" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
|
||||
<!--[- if deprecated_or_internal_variables.re ]-->
|
||||
<RegExpr attribute="CMake Internal Variable" context="#stay" String="<!--{deprecated_or_internal_variables.re}-->" />
|
||||
<!--[- endif ]-->
|
||||
<!--[- if variables.re ]-->
|
||||
<RegExpr attribute="Builtin Variable" context="#stay" String="<!--{variables.re}-->" />
|
||||
<!--[- endif ]-->
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
|
||||
<RegExpr attribute="Cache Variable Substitution" context="#stay" String="\$CACHE\{\s*[\w-]+\s*\}" />
|
||||
<RegExpr attribute="Environment Variable Substitution" context="EnvVarSubst" String="\$?ENV\{" />
|
||||
<Detect2Chars attribute="Variable Substitution" context="VarSubst" char="$" char1="{" />
|
||||
<RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&var_ref_re;@" lookAhead="true" />
|
||||
</context>
|
||||
|
||||
<context attribute="Environment Variable Substitution" lineEndContext="#pop" name="EnvVarSubst">
|
||||
<DetectChar attribute="Environment Variable Substitution" context="#pop" char="}" />
|
||||
<keyword attribute="Standard Environment Variable" context="#stay" String="environment-variables" insensitive="false" />
|
||||
<!--[- if environment_variables.re ]-->
|
||||
<RegExpr attribute="Standard Environment Variable" context="#stay" String="<!--{environment_variables.re}-->" />
|
||||
<!--[- endif ]-->
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="Detect Variable Substitutions" />
|
||||
</context>
|
||||
|
||||
<context attribute="Variable Substitution" lineEndContext="#pop" name="VarSubst">
|
||||
<DetectChar attribute="Variable Substitution" context="#pop" char="}" />
|
||||
<IncludeRules context="Detect Builtin Variables" />
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="Detect Variable Substitutions" />
|
||||
</context>
|
||||
|
||||
<context attribute="@Variable Substitution" lineEndContext="#pop" name="@VarSubst">
|
||||
<DetectChar attribute="@Variable Substitution" context="VarSubst@" char="@" />
|
||||
</context>
|
||||
|
||||
<context attribute="@Variable Substitution" lineEndContext="#pop#pop" name="VarSubst@">
|
||||
<DetectChar attribute="@Variable Substitution" context="#pop#pop" char="@" />
|
||||
<IncludeRules context="Detect Builtin Variables" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Target Name">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Aliased Targets" context="#pop" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*" />
|
||||
<IncludeRules context="Detect Targets" />
|
||||
<IncludeRules context="User Function Opened" />
|
||||
<IncludeRules context="LineError" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Targets">
|
||||
<RegExpr attribute="Targets" context="#stay" String="&tgt_name_re;" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="LineError">
|
||||
<RegExpr attribute="Error" context="#stay" String=".*" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="User Function Args">
|
||||
<Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="(" />
|
||||
<Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1=""" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\" />
|
||||
<DetectChar attribute="Strings" context="String" char=""" />
|
||||
<RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" beginRegion="BracketedString" />
|
||||
<DetectChar attribute="Comment" context="Match Comments" char="#" lookAhead="true" />
|
||||
<IncludeRules context="Detect Builtin Variables" />
|
||||
<IncludeRules context="Detect Variable Substitutions" />
|
||||
<IncludeRules context="Detect Special Values" />
|
||||
<IncludeRules context="Detect Aliased Targets" />
|
||||
<IncludeRules context="Detect Generator Expressions" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Special Values">
|
||||
<RegExpr attribute="Version Arg" context="#stay" String="\b[0-9]++(.[0-9]++)+\b" />
|
||||
<keyword attribute="True Special Arg" context="#stay" String="true_special_arg" insensitive="true" />
|
||||
<keyword attribute="False Special Arg" context="#stay" String="false_special_arg" insensitive="true" />
|
||||
<RegExpr attribute="False Special Arg" context="#stay" String="\b(?:&var_ref_re;-)?NOTFOUND\b" />
|
||||
<RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9][0-9][0-9][0-9]\b" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Aliased Targets">
|
||||
<RegExpr attribute="Aliased Targets" context="#stay" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Match Comments">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Comment" context="#pop!Bracketed Comment" String="#\[(=*)\[" beginRegion="BracketedComment" />
|
||||
<DetectChar attribute="Comment" context="#pop!Comment" char="#" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Match Comments and Docs">
|
||||
<RegExpr attribute="Region Marker" context="#pop!RST Documentation" String="^#\[(=*)\[\.rst:" column="0" beginRegion="RSTDocumentation" />
|
||||
<IncludeRules context="Match Comments" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<DetectSpaces />
|
||||
<LineContinue attribute="Comment" context="#pop" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
|
||||
<RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" endRegion="RSTDocumentation" />
|
||||
<IncludeRules context="##reStructuredText" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
|
||||
<LineContinue attribute="Comment" context="#stay" />
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedComment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context attribute="Strings" lineEndContext="#stay" name="String">
|
||||
<DetectSpaces />
|
||||
<DetectIdentifier />
|
||||
<RegExpr attribute="Strings" context="#pop" String=""(?=[ );]|$)" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1=""" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="r" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="t" />
|
||||
<Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\" />
|
||||
<IncludeRules context="Detect Variable Substitutions" />
|
||||
<IncludeRules context="Detect Generator Expressions" />
|
||||
</context>
|
||||
|
||||
<context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
|
||||
<StringDetect attribute="Strings" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedString" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
|
||||
<Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="<" />
|
||||
</context>
|
||||
|
||||
<context attribute="Generator Expression" lineEndContext="#stay" name="Generator Expression">
|
||||
<IncludeRules context="Detect Generator Expressions" />
|
||||
<DetectChar attribute="Comment" context="Comment" char="#" />
|
||||
<DetectChar attribute="Generator Expression" context="#pop" char=">" />
|
||||
<keyword attribute="Generator Expression Keyword" context="#stay" String="generator-expressions" insensitive="false" />
|
||||
<!--[- for expr in complex_generator_expressions ]-->
|
||||
<WordDetect String="<!--{expr.name}-->" attribute="Generator Expression Keyword" context="genex_<!--{expr.name}-->_ctx" />
|
||||
<!--[- endfor ]-->
|
||||
<IncludeRules context="Detect Aliased Targets" />
|
||||
<IncludeRules context="Detect Variable Substitutions" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<!--[- for expr in complex_generator_expressions ]-->
|
||||
<context attribute="Generator Expression" lineEndContext="#stay" name="genex_<!--{expr.name}-->_ctx" fallthroughContext="#pop">
|
||||
<DetectChar char=":" context="#stay" />
|
||||
<DetectSpaces />
|
||||
<keyword attribute="Generator Expression Sub-Command" context="#pop" String="genex-<!--{expr.name}-->-subcommands" insensitive="false" />
|
||||
</context>
|
||||
<!--[- endfor ]-->
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
|
||||
<itemData name="Command" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false" />
|
||||
<itemData name="CMake Provided Function/Macro" defStyleNum="dsFunction" bold="true" spellChecking="false" />
|
||||
<itemData name="User Function/Macro" defStyleNum="dsFunction" spellChecking="false" />
|
||||
<itemData name="Property" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Targets" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Aliased Targets" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Named Args" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="True Special Arg" defStyleNum="dsOthers" color="#30a030" selColor="#30a030" spellChecking="false" />
|
||||
<itemData name="False Special Arg" defStyleNum="dsOthers" color="#e05050" selColor="#e05050" spellChecking="false" />
|
||||
<itemData name="Version Arg" defStyleNum="dsDataType" spellChecking="false" />
|
||||
<itemData name="Strings" defStyleNum="dsString" spellChecking="true" />
|
||||
<itemData name="Escapes" defStyleNum="dsSpecialChar" spellChecking="false" />
|
||||
<itemData name="Builtin Variable" defStyleNum="dsDecVal" color="#c09050" selColor="#c09050" spellChecking="false" />
|
||||
<itemData name="CMake Internal Variable" defStyleNum="dsVariable" spellChecking="false" />
|
||||
<itemData name="Internal Name" defStyleNum="dsVariable" spellChecking="false" />
|
||||
<itemData name="Variable Substitution" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="@Variable Substitution" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Cache Variable Substitution" defStyleNum="dsFloat" spellChecking="false" />
|
||||
<itemData name="Environment Variable Substitution" defStyleNum="dsFloat" spellChecking="false" />
|
||||
<itemData name="Standard Environment Variable" defStyleNum="dsFloat" spellChecking="false" />
|
||||
<itemData name="Generator Expression Keyword" defStyleNum="dsKeyword" color="#b84040" selColor="#b84040" spellChecking="false" />
|
||||
<itemData name="Generator Expression Sub-Command" defStyleNum="dsKeyword" color="#c05050" selColor="#c05050" spellChecking="false" />
|
||||
<itemData name="Generator Expression" defStyleNum="dsOthers" color="#b86050" selColor="#b86050" spellChecking="false" />
|
||||
<itemData name="Standard Module" defStyleNum="dsImport" spellChecking="false" />
|
||||
<itemData name="Deprecated Module" defStyleNum="dsImport" spellChecking="false" />
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false" />
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" position="afterwhitespace" />
|
||||
<comment name="multiLine" start="#[[" end="]]" region="BracketedComment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" weakDeliminator="." />
|
||||
</general>
|
||||
</language>
|
||||
|
||||
<!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->
|
||||
File diff suppressed because it is too large
Load Diff
+516
@@ -0,0 +1,516 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Generate Kate syntax file for CMake
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2017-2024 Alex Turbov <i.zaufi@gmail.com>
|
||||
#
|
||||
# To install prerequisites:
|
||||
#
|
||||
# $ pip install --user click jinja2 lxml pyyaml
|
||||
#
|
||||
# To use:
|
||||
#
|
||||
# $ ./generate-cmake-syntax.py cmake.yaml > ../syntax/cmake.xml
|
||||
#
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import functools
|
||||
import re
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
import click
|
||||
import jinja2
|
||||
import yaml
|
||||
import sys
|
||||
from lxml import etree
|
||||
|
||||
|
||||
_TEMPLATED_NAME = re.compile(r'(?:<[^>]+>)')
|
||||
_PROPERTY_KEYS = [
|
||||
'global-properties'
|
||||
, 'directory-properties'
|
||||
, 'target-properties'
|
||||
, 'source-properties'
|
||||
, 'test-properties'
|
||||
, 'cache-properties'
|
||||
, 'install-properties'
|
||||
]
|
||||
_KW_RE_LIST = ['kw', 're']
|
||||
_VAR_KIND_LIST = ['variables', 'deprecated-or-internal-variables', 'environment-variables']
|
||||
_CONTROL_FLOW_LIST = {
|
||||
'break'
|
||||
, 'continue'
|
||||
, 'elseif'
|
||||
, 'else'
|
||||
, 'endforeach'
|
||||
, 'endif'
|
||||
, 'endwhile'
|
||||
, 'foreach'
|
||||
, 'if'
|
||||
, 'return'
|
||||
, 'while'
|
||||
}
|
||||
_VAR_REF_ENTITY = '&var_ref_re;'
|
||||
|
||||
_HEURISTICS = [
|
||||
(
|
||||
{'MAX(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?', 'MIN(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?'}
|
||||
, 'M(AX|IN)(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?'
|
||||
)
|
||||
, ({'OUTPUTS', 'OUTPUT_(HEADER|SOURCE)'}, 'OUTPUT(S|_(HEADER|SOURCE))')
|
||||
, ({'PREFIX', 'SUFFIX'}, '(PRE|SUF)FIX')
|
||||
, ({'CPPCHECK', 'CPPLINT'}, 'CPP(CHECK|LINT)')
|
||||
, ({'DEPENDS', 'PREDEPENDS'}, '(PRE)?DEPENDS')
|
||||
, ({'ICON', 'ICONURL'}, 'ICON(URL)?')
|
||||
, (
|
||||
{
|
||||
'&var%ref%re;(_INIT)?'
|
||||
, 'DEBUG(_INIT)?'
|
||||
, 'MINSIZEREL(_INIT)?'
|
||||
, 'RELEASE(_INIT)?'
|
||||
, 'RELWITHDEBINFO(_INIT)?'
|
||||
}
|
||||
, '(DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO)|&var%ref%re;)(_INIT)?'
|
||||
)
|
||||
, ({'RELEASE', 'RELWITHDEBINFO'}, 'REL(EASE|WITHDEBINFO)')
|
||||
, ({'POST', 'POSTUN', 'PRE', 'PREUN'}, 'P(RE|OST)(UN)?')
|
||||
, ({'AUTOPROV', 'AUTOREQ', 'AUTOREQPROV'}, 'AUTO(PROV|REQ(PROV)?)')
|
||||
, ({'DEFINITIONS', 'OPTIONS'}, '(DEFINI|OP)TIONS')
|
||||
, ({'LIB_NAMES', 'LIBRARY'}, 'LIB(_NAMES|RARY)')
|
||||
, ({'EXTENSIONS', 'EXTRA_FLAGS'}, 'EXT(ENSIONS|RA_FLAGS)')
|
||||
, ({'DISABLED', 'DISPLAY_NAME'}, 'DIS(ABLED|PLAY_NAME)')
|
||||
, ({'LIBRARIES', 'LINK_LIBRARIES', 'STATIC_LINK_LIBRARIES'}, '((STATIC_)?LINK_)?LIBRARIES')
|
||||
, ({'INCLUDE_DIRS', 'LIBRARY_DIRS'}, '(INCLUDE|LIBRARY)_DIRS')
|
||||
, ({'BINARY_DIR', 'SOURCE_DIR'}, '(BINARY|SOURCE)_DIR')
|
||||
, ({'CFLAGS(_OTHER)?', 'LDFLAGS(_OTHER)?'}, '(C|LD)FLAGS(_OTHER)?')
|
||||
, ({'INCLUDE_DIRECTORIES', 'LIBRARIES'}, '(INCLUDE_DIRECTO|LIBRA)RIES')
|
||||
, ({'POSTFLIGHT_&var%ref%re;_SCRIPT', 'PREFLIGHT_&var%ref%re;_SCRIPT'}, 'P(RE|OST)FLIGHT_&var%ref%re;_SCRIPT')
|
||||
, ({'DIRECTORIES', 'FRAMEWORK_DIRECTORIES'}, '(FRAMEWORK_)?DIRECTORIES')
|
||||
, ({'FILE_FLAG', 'FILE'}, 'FILE(_FLAG)?')
|
||||
, ({'DIR_PERMISSIONS', 'FILE_PERMISSIONS'}, '(DIR|FILE)_PERMISSIONS')
|
||||
, ({'COMPILER_LAUNCHER', 'LINKER_LAUNCHER'}, '(COMPIL|LINK)ER_LAUNCHER')
|
||||
, ({'COMPILER', 'COMPILE_(DEFINI|OP)TIONS'}, 'COMPILE(R|_(DEFINI|OP)TIONS)')
|
||||
, ({'LICENSEURL', 'LICENSE_(EXPRESSION|FILE_NAME)'}, 'LICENSE(URL|_(EXPRESSION|FILE_NAME))')
|
||||
, ({'NO_SONAME', 'SONAME'}, '(NO_)?SONAME')
|
||||
, ({'CODE_SIGN_ON_COPY', 'REMOVE_HEADERS_ON_COPY'}, '(CODE_SIGN|REMOVE_HEADERS)_ON_COPY')
|
||||
, ({'(REFERENCE|REFERENCEPROP_&var%ref%re;_TAG)_&var%ref%re;'}, 'REFERENCE(PROP_&var%ref%re;_TAG)?_&var%ref%re;')
|
||||
, ({'DISABLE_FIND_PACKAGE', 'REQUIRE_FIND_PACKAGE'}, '(DISABLE|REQUIRE)_FIND_PACKAGE')
|
||||
, (
|
||||
{'GROUP_USING_&var%ref%re;(_SUPPORTED)?', 'LIBRARY_USING_&var%ref%re;(_SUPPORTED)?'}
|
||||
, '(GROUP|LIBRARY)_USING_&var%ref%re;(_SUPPORTED)?'
|
||||
)
|
||||
, (
|
||||
{
|
||||
'EXE_LINKER_FLAGS_&var%ref%re;(_INIT)?'
|
||||
, 'MODULE_LINKER_FLAGS_&var%ref%re;(_INIT)?'
|
||||
, 'SHARED_LINKER_FLAGS_&var%ref%re;(_INIT)?'
|
||||
, 'STATIC_LINKER_FLAGS_&var%ref%re;(_INIT)?'
|
||||
}
|
||||
, '(EXE|MODULE|SHARED|STATIC)_LINKER_FLAGS_&var%ref%re;(_INIT)?'
|
||||
)
|
||||
, (
|
||||
{
|
||||
'ARCHIVE_OUTPUT_DIRECTORY'
|
||||
, 'COMPILE_PDB_OUTPUT_DIRECTORY'
|
||||
, 'LIBRARY_OUTPUT_DIRECTORY'
|
||||
, 'PDB_OUTPUT_DIRECTORY'
|
||||
, 'RUNTIME_OUTPUT_DIRECTORY'
|
||||
}
|
||||
, '(ARCHIVE|(COMPILE_)?PDB|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY'
|
||||
)
|
||||
, (
|
||||
{
|
||||
'ARCHIVE_OUTPUT_(DIRECTORY|NAME)'
|
||||
, 'LIBRARY_OUTPUT_(DIRECTORY|NAME)'
|
||||
, 'RUNTIME_OUTPUT_(DIRECTORY|NAME)'
|
||||
}
|
||||
, '(ARCHIVE|LIBRARY|RUNTIME)_OUTPUT_(DIRECTORY|NAME)'
|
||||
)
|
||||
, ({'ASM&var_ref_re;', 'ASM&var_ref_re;FLAGS'}, 'ASM&var_ref_re;(FLAGS)?')
|
||||
, (
|
||||
{
|
||||
'CMAKE_POLICY_DEFAULT_CMP[0-9]{4}'
|
||||
, 'CMAKE_POLICY_WARNING_CMP[0-9]{4}'
|
||||
}
|
||||
, 'CMAKE_POLICY_(DEFAULT|WARNING)_CMP[0-9]{4}'
|
||||
)
|
||||
, ({'CMAKE_ARGV[0-9]+', 'CMAKE_MATCH_[0-9]+'}, 'CMAKE_(ARGV|MATCH_)[0-9]+')
|
||||
]
|
||||
|
||||
@dataclass
|
||||
class RePartNode:
|
||||
children: dict[str, RePartNode] = field(default_factory=dict, hash=False)
|
||||
is_leaf: bool = False
|
||||
|
||||
|
||||
@dataclass
|
||||
class RegexCollection:
|
||||
special_cases: list[str] = field(default_factory=list, hash=False)
|
||||
re_tree: dict[str, RePartNode] = field(default_factory=dict, hash=False)
|
||||
|
||||
def add_case(self, regex: str) -> RegexCollection:
|
||||
self.special_cases.append(regex)
|
||||
return self
|
||||
|
||||
def update_tree(self, name_parts: list[str]) -> RegexCollection:
|
||||
safe_var_ref = _VAR_REF_ENTITY.replace('_', '%')
|
||||
functools.reduce(
|
||||
lambda current, part: (
|
||||
self.re_tree if current is None else current.children
|
||||
).setdefault(part, RePartNode())
|
||||
, (
|
||||
safe_var_ref
|
||||
.join(name_parts)
|
||||
.replace(f'{safe_var_ref}_{safe_var_ref}', safe_var_ref)
|
||||
.split('_')
|
||||
)
|
||||
, None
|
||||
).is_leaf = True
|
||||
return self
|
||||
|
||||
|
||||
def try_transform_placeholder_string_to_regex(state: RegexCollection, name: str):
|
||||
'''
|
||||
NOTE Some placeholders are not IDs, but numbers...
|
||||
`CMAKE_MATCH_<N>` 4 example
|
||||
'''
|
||||
name_parts = _TEMPLATED_NAME.split(name)
|
||||
match name_parts:
|
||||
case ['CMAKE_MATCH_' as head, ''] | ['CMAKE_ARGV' as head, ''] | ['ARGV' as head, '']:
|
||||
return state.add_case(head + '[0-9]+')
|
||||
|
||||
case ['CMAKE_POLICY_DEFAULT_CMP' as head, ''] | ['CMAKE_POLICY_WARNING_CMP' as head, '']:
|
||||
return state.add_case(head + '[0-9]{4}')
|
||||
|
||||
case ['', '__TRYRUN_OUTPUT']:
|
||||
return state.add_case(f'{_VAR_REF_ENTITY}__TRYRUN_OUTPUT')
|
||||
|
||||
case (['ASM', ''] | ['ASM', 'FLAGS']) as asm_env:
|
||||
return state.add_case(f'{asm_env[0]}{_VAR_REF_ENTITY}{asm_env[1]}')
|
||||
|
||||
return state.update_tree(name_parts)
|
||||
|
||||
|
||||
def is_first_subset_of_second(first, second):
|
||||
subset = set(first)
|
||||
fullset = set(second)
|
||||
return subset.issubset(fullset)
|
||||
|
||||
|
||||
def try_optimize_known_alt_groups(groups: list[str]) -> list[str]:
|
||||
for case in _HEURISTICS:
|
||||
if is_first_subset_of_second(case[0], groups):
|
||||
groups = sorted([*filter(lambda item: item not in case[0], groups), case[1]])
|
||||
return groups
|
||||
|
||||
|
||||
def try_optimize_trailing_var_ref_regex(groups: list[str]) -> list[str]:
|
||||
tail_var_ref_re = '_' + _VAR_REF_ENTITY.replace('_', '%')
|
||||
candidates = [*filter(lambda s: s.endswith(tail_var_ref_re), groups)]
|
||||
return sorted([
|
||||
*filter(lambda item: item not in candidates, groups)
|
||||
, f'({"|".join(try_optimize_known_alt_groups([s[:-len(tail_var_ref_re)] for s in candidates]))}){tail_var_ref_re}'
|
||||
]) if len(candidates) > 1 else groups
|
||||
|
||||
|
||||
def build_regex(state: list[str], kv: tuple[str, RePartNode]) -> list[str]:
|
||||
name, value = kv
|
||||
match (value, len(value.children)):
|
||||
case (RePartNode(children={}, is_leaf=True), 0):
|
||||
return [*state, name]
|
||||
|
||||
case (node, sz) if sz > 0:
|
||||
alt_group = try_optimize_known_alt_groups(
|
||||
try_optimize_trailing_var_ref_regex(
|
||||
functools.reduce(build_regex, node.children.items(), [])
|
||||
)
|
||||
)
|
||||
|
||||
match (len(alt_group), node.is_leaf):
|
||||
case (1, False):
|
||||
return [*state, f'{name}_{alt_group[0]}']
|
||||
|
||||
case (1, True):
|
||||
return [*state, f'{name}(_{alt_group[0]})?']
|
||||
|
||||
case (sz, False) if sz > 0:
|
||||
return [*state, f'{name}_({"|".join(alt_group)})']
|
||||
|
||||
case (sz, True) if sz > 0:
|
||||
return [*state, f'{name}(_({"|".join(alt_group)}))?']
|
||||
|
||||
case _:
|
||||
raise AssertionError('Zero children?')
|
||||
|
||||
case _:
|
||||
raise AssertionError(f'NOT MATCHED: {name=}→{value=}')
|
||||
|
||||
return state
|
||||
|
||||
|
||||
def try_placeholders_to_regex(names):
|
||||
if not names:
|
||||
return None
|
||||
|
||||
data = functools.reduce(
|
||||
try_transform_placeholder_string_to_regex
|
||||
, names
|
||||
, RegexCollection()
|
||||
)
|
||||
|
||||
return (
|
||||
'\\b(?:'
|
||||
+ '|'.join(
|
||||
try_optimize_known_alt_groups(
|
||||
try_optimize_trailing_var_ref_regex(
|
||||
functools.reduce(
|
||||
build_regex
|
||||
, data.re_tree.items()
|
||||
, data.special_cases
|
||||
)
|
||||
)
|
||||
)
|
||||
).replace('%', '_')
|
||||
+ ')\\b'
|
||||
)
|
||||
|
||||
|
||||
def partition_iterable(fn, iterable):
|
||||
true, false = [], []
|
||||
for i in iterable:
|
||||
(false, true)[int(fn(i))].append(i)
|
||||
return true, false
|
||||
|
||||
|
||||
def _transform_command_set(cmd, list_name):
|
||||
args, args_re = partition_iterable(lambda x: _TEMPLATED_NAME.search(x) is None, cmd[list_name])
|
||||
del cmd[list_name]
|
||||
list_name = list_name.replace('-', '_')
|
||||
|
||||
cmd[list_name] = {k: sorted(set(v)) for k, v in zip(_KW_RE_LIST, [args, args_re])}
|
||||
cmd[list_name]['re'] = try_placeholders_to_regex(args_re)
|
||||
|
||||
return cmd
|
||||
|
||||
|
||||
def transform_command(cmd):
|
||||
can_be_nulary = True
|
||||
|
||||
if 'name' not in cmd:
|
||||
raise RuntimeError('Command have no name')
|
||||
|
||||
if 'named-args' in cmd:
|
||||
new_cmd = _transform_command_set(cmd, 'named-args')
|
||||
assert new_cmd == cmd
|
||||
can_be_nulary = False
|
||||
|
||||
if 'special-args' in cmd:
|
||||
new_cmd = _transform_command_set(cmd, 'special-args')
|
||||
assert new_cmd == cmd
|
||||
can_be_nulary = False
|
||||
|
||||
if 'property-args' in cmd:
|
||||
new_cmd = _transform_command_set(cmd, 'property-args')
|
||||
assert new_cmd == cmd
|
||||
can_be_nulary = False
|
||||
|
||||
cmd['nested_parentheses'] = cmd.get('nested-parentheses?', False)
|
||||
|
||||
if 'first-arg-is-target?' in cmd:
|
||||
cmd['first_arg_is_target'] = cmd['first-arg-is-target?']
|
||||
can_be_nulary = False
|
||||
|
||||
if 'first-args-are-targets?' in cmd:
|
||||
cmd['first_args_are_targets'] = cmd['first-args-are-targets?']
|
||||
can_be_nulary = False
|
||||
|
||||
if 'has-target-name-after-kw' in cmd:
|
||||
cmd['has_target_name_after_kw'] = cmd['has-target-name-after-kw']
|
||||
can_be_nulary = False
|
||||
|
||||
if 'has-target-names-after-kw' in cmd:
|
||||
match cmd['has-target-names-after-kw']:
|
||||
case str():
|
||||
cmd['has_target_names_after_kw'] = [cmd['has-target-names-after-kw']]
|
||||
case list():
|
||||
cmd['has_target_names_after_kw'] = cmd['has-target-names-after-kw']
|
||||
case _:
|
||||
raise TypeError('Unexpected type for `has-target-names-after-kw`')
|
||||
can_be_nulary = False
|
||||
|
||||
if 'second-arg-is-target?' in cmd:
|
||||
cmd['second_arg_is_target'] = cmd['second-arg-is-target?']
|
||||
can_be_nulary = False
|
||||
|
||||
if 'nulary?' in cmd and cmd['nulary?'] and not can_be_nulary:
|
||||
raise RuntimeError('Command `{}` w/ args declared nulary!?'.format(cmd['name']))
|
||||
|
||||
if 'start-region' in cmd:
|
||||
cmd['start_region'] = cmd['start-region']
|
||||
|
||||
if 'end-region' in cmd:
|
||||
cmd['end_region'] = cmd['end-region']
|
||||
|
||||
cmd['attribute'] = 'Control Flow' if cmd['name'] in _CONTROL_FLOW_LIST else 'Command'
|
||||
|
||||
return cmd
|
||||
|
||||
|
||||
def remove_duplicate_list_nodes(root):
|
||||
remap = {}
|
||||
items_by_kws = {}
|
||||
|
||||
# extract duplicate keyword list
|
||||
for items in root.iterfind('highlighting/list'):
|
||||
key = '<'.join(item.text for item in items)
|
||||
name = items.attrib['name']
|
||||
if rename := items_by_kws.get(key):
|
||||
remap[name] = rename
|
||||
items.getparent().remove(items)
|
||||
else:
|
||||
items_by_kws[key] = name
|
||||
|
||||
# update keyword list name referenced by each rule
|
||||
for rule in root.iterfind('highlighting/contexts/context/keyword'):
|
||||
name = rule.attrib['String']
|
||||
rule.attrib['String'] = remap.get(name, name)
|
||||
|
||||
|
||||
def remove_duplicate_context_nodes(root):
|
||||
contexts = root[0].find('contexts')
|
||||
# 3 levels: ctx, ctx_op and ctx_op_nested
|
||||
# TODO Refactor it!
|
||||
for _ in range(3):
|
||||
remap = {}
|
||||
duplicated = {}
|
||||
|
||||
# remove duplicate nodes
|
||||
for context in contexts:
|
||||
name = context.attrib['name']
|
||||
context.attrib['name'] = 'dummy'
|
||||
ref = duplicated.setdefault(etree.tostring(context), [])
|
||||
if ref:
|
||||
contexts.remove(context)
|
||||
else:
|
||||
context.attrib['name'] = name
|
||||
ref.append(name)
|
||||
remap[name] = ref[0]
|
||||
|
||||
# update context name referenced by each rule
|
||||
for context in contexts:
|
||||
for rule in context:
|
||||
ref = remap.get(rule.attrib.get('context'))
|
||||
if ref:
|
||||
rule.attrib['context'] = ref
|
||||
|
||||
|
||||
def remove_duplicate_nodes(xml_string):
|
||||
parser = etree.XMLParser(resolve_entities=False, collect_ids=False)
|
||||
root = etree.fromstring(xml_string.encode(), parser=parser)
|
||||
|
||||
remove_duplicate_list_nodes(root)
|
||||
remove_duplicate_context_nodes(root)
|
||||
|
||||
# reformat comments
|
||||
xml = etree.tostring(root)
|
||||
xml = re.sub(b'(?=[^\n ])<!--', b'\n<!--', xml)
|
||||
xml = re.sub(b'-->(?=[^ \n])', b'-->\n', xml)
|
||||
|
||||
# extract DOCTYPE removed by etree.fromstring and reformat <language>
|
||||
doctype = xml_string[:xml_string.find('<highlighting')]
|
||||
|
||||
# remove unformatted <language>
|
||||
xml = xml[xml.find(b'<highlighting'):]
|
||||
|
||||
# last comment removed by etree.fromstring
|
||||
last_comment = '\n<!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->'
|
||||
|
||||
return f'{doctype}{xml.decode()}{last_comment}'
|
||||
|
||||
|
||||
# BEGIN Jinja filters
|
||||
|
||||
def cmd_is_nulary(cmd):
|
||||
return cmd.setdefault('nulary?', False)
|
||||
|
||||
# END Jinja filters
|
||||
|
||||
|
||||
@click.command()
|
||||
@click.argument('input_yaml', type=click.File('r'))
|
||||
@click.argument('template', type=click.File('r'), default='./cmake.xml.tpl')
|
||||
def cli(input_yaml, template):
|
||||
data = yaml.load(input_yaml, Loader=yaml.BaseLoader)
|
||||
|
||||
# Partition `variables` and `environment-variables` lists into "pure" (key)words and regexes to match
|
||||
for var_key in _VAR_KIND_LIST:
|
||||
data[var_key] = {
|
||||
k: sorted(set(v)) for k, v in zip(
|
||||
_KW_RE_LIST
|
||||
, [*partition_iterable(lambda x: _TEMPLATED_NAME.search(x) is None, data[var_key])]
|
||||
)
|
||||
}
|
||||
data[var_key]['re'] = try_placeholders_to_regex(data[var_key]['re'])
|
||||
|
||||
# Transform properties and make all-properties list
|
||||
data['properties'] = {}
|
||||
for prop in _PROPERTY_KEYS:
|
||||
python_prop_list_name = prop.replace('-', '_')
|
||||
props, props_re = partition_iterable(lambda x: _TEMPLATED_NAME.search(x) is None, data[prop])
|
||||
del data[prop]
|
||||
|
||||
data['properties'][python_prop_list_name] = {
|
||||
k: sorted(set(v)) for k, v in zip(_KW_RE_LIST, [props, props_re])
|
||||
}
|
||||
data['properties'][python_prop_list_name]['re'] = try_placeholders_to_regex(props_re)
|
||||
|
||||
data['properties']['kinds'] = list(map(lambda name: name.replace('-', '_'), _PROPERTY_KEYS))
|
||||
|
||||
# Make all commands list
|
||||
data['commands'] = list(
|
||||
map(
|
||||
transform_command
|
||||
, data['scripting-commands'] + data['project-commands'] + data['ctest-commands']
|
||||
)
|
||||
)
|
||||
data['standard_module_commands'] = list(
|
||||
map(
|
||||
transform_command
|
||||
, data['standard-module-commands']
|
||||
)
|
||||
)
|
||||
del data['standard-module-commands']
|
||||
|
||||
# Fix node names to be accessible from Jinja template
|
||||
data['generator_expressions'] = (ex for ex in data['generator-expressions'] if isinstance(ex, str))
|
||||
data['complex_generator_expressions'] = [ex for ex in data['generator-expressions'] if not isinstance(ex, str)]
|
||||
data['deprecated_or_internal_variables'] = data['deprecated-or-internal-variables']
|
||||
data['environment_variables'] = data['environment-variables']
|
||||
del data['generator-expressions']
|
||||
del data['deprecated-or-internal-variables']
|
||||
del data['environment-variables']
|
||||
|
||||
env = jinja2.Environment(
|
||||
keep_trailing_newline=True
|
||||
)
|
||||
env.block_start_string = '<!--['
|
||||
env.block_end_string = ']-->'
|
||||
env.variable_start_string = '<!--{'
|
||||
env.variable_end_string = '}-->'
|
||||
env.comment_start_string = '<!--#'
|
||||
env.comment_end_string = '#-->'
|
||||
|
||||
# Register convenience filters
|
||||
env.tests['nulary'] = cmd_is_nulary
|
||||
|
||||
tpl = env.from_string(template.read())
|
||||
result = tpl.render(data)
|
||||
result = remove_duplicate_nodes(result)
|
||||
|
||||
print(result)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
cli()
|
||||
# TODO Handle execptions and show errors
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-FileCopyrightText: 2020 Jonathan Poelen <jonathan.poelen@gmail.com>
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
my $file = "";
|
||||
|
||||
open(my $input, '<:encoding(UTF-8)', $ARGV[0])
|
||||
or die "Could not open file '$ARGV[0]': $!";
|
||||
|
||||
open(my $output, '>:encoding(UTF-8)', $ARGV[1])
|
||||
or die "Could not open file '$ARGV[1]': $!";
|
||||
|
||||
while (<$input>)
|
||||
{
|
||||
$file .= $_;
|
||||
}
|
||||
|
||||
$warning = "\n\n<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT ***** -->\n";
|
||||
$first_context = " <context attribute=\"Normal Text\" lineEndContext=\"#stay\" name=\"Normal\">
|
||||
<RegExpr attribute=\"Comment\" context=\"LineComment\" String=\"--(?:!|(?:-(?=[^-]|\$)))\"/>
|
||||
<RegExpr attribute=\"Region\" context=\"#stay\" String=\"--\\s*\@\\{\\s*\$\" beginRegion=\"MemberGroup\" />
|
||||
<RegExpr attribute=\"Region\" context=\"#stay\" String=\"--\\s*\@\\}\\s*\$\" endRegion=\"MemberGroup\" />
|
||||
</context>";
|
||||
|
||||
$file =~ s/\n\s*<context [^\n]*?(?:name="ML_|name="BlockComment").*?<\/context>//gs;
|
||||
$file =~ s/\n\s*<context [^\n]*?name="Normal".*?<\/context>/\n$first_context/s;
|
||||
$file =~ s/\n[^\n]*?(?: ml_word|LineContinue)[^\n]+//gs;
|
||||
$file =~ s/\/\/\//---/gs;
|
||||
$file =~ s/\/\/!/--!/gs;
|
||||
|
||||
$language = $file =~ s/.*?(<language[^>]+?>).*/$1/sr;
|
||||
$language =~ s/ name="[^"]+/ name="DoxygenLua/s;
|
||||
$language =~ s/ extensions="[^"]+/ extensions="/s;
|
||||
$language =~ s/ mimetype="[^"]+/ mimetype="/s;
|
||||
$language =~ s/ priority="[^"]+"//s;
|
||||
$version = $language =~ s/.*? version="([^"]+).*/$1/sr;
|
||||
$version = $version+2;
|
||||
$language =~ s/ version="[^"]+/ version="$version/s;
|
||||
$file =~ s/<language[^>]+?>/$warning\n$language/s;
|
||||
|
||||
print $output $file;
|
||||
print $output $warning;
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# This perl script read stdin and write on stdout. It shall be an XML language file.
|
||||
#
|
||||
# * If the name of the language is 'HTML', then it creates the language 'PHP (HTML)'
|
||||
# which shall be used for PHP hl.
|
||||
#
|
||||
# * If the name of the language is something else (say '*'), it creates the language '*/PHP'.
|
||||
# This new language is the same as the old one, but is able to detect PHP everywhere.
|
||||
#
|
||||
# This script will correctly set extensions & mimetype, and will replace
|
||||
# <IncludeRules context="##*"> by <IncludeRules context="##*/PHP">
|
||||
#
|
||||
# Generated languages need a language named 'PHP/PHP', which shall take care of PHP hl itself
|
||||
# and which will be called every time something like <?php is encountred.
|
||||
#
|
||||
# This script also supports Twig and does the same as for PHP.
|
||||
#
|
||||
# SPDX-FileCopyrightText: Jan Villat <jan.villat@net2000.ch>
|
||||
# License: LGPL
|
||||
|
||||
my $file = "";
|
||||
|
||||
open(my $input, '<:encoding(UTF-8)', $ARGV[0])
|
||||
or die "Could not open file '$ARGV[0]': $!";
|
||||
|
||||
open(my $output, '>:encoding(UTF-8)', $ARGV[1])
|
||||
or die "Could not open file '$ARGV[1]': $!";
|
||||
|
||||
my $language = $ARGV[1];
|
||||
if ($language =~ /-php\.xml$/)
|
||||
{
|
||||
$language = "PHP";
|
||||
}
|
||||
else
|
||||
{
|
||||
$language = "Twig";
|
||||
}
|
||||
|
||||
while (<$input>)
|
||||
{
|
||||
$file .= $_;
|
||||
}
|
||||
|
||||
$warning = "\n\n<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT ***** -->\n";
|
||||
|
||||
$file =~ s/(?=<language)/$warning\n\n\n/;
|
||||
|
||||
$file =~ /<language.*?name="([^"]+)"/;
|
||||
my $syntaxName = $1;
|
||||
|
||||
if ($syntaxName eq "HTML")
|
||||
{
|
||||
$root = 1;
|
||||
}
|
||||
|
||||
if ($language eq "Twig")
|
||||
{
|
||||
$file =~ s/<language([^>]+)priority="[^"]*"/<language$1/s;
|
||||
}
|
||||
|
||||
if ($root == 1)
|
||||
{
|
||||
$file =~ s/<language([^>]+)name="[^"]*"/<language$1name="$language (HTML)"/s;
|
||||
$file =~ s/<language([^>]+)section="[^"]*"/<language$1section="Scripts"/s;
|
||||
if ($language eq "PHP")
|
||||
{
|
||||
$file =~ s/<language([^>]+)extensions="[^"]*"/<language$1extensions="*.php;*.php3;*.wml;*.phtml;*.phtm;*.inc;*.ctp"/s;
|
||||
$file =~ s/<language([^>]+)mimetype="[^"]*"/<language$1mimetype="text\/x-php4-src;text\/x-php3-src;text\/vnd.wap.wml;application\/x-php"/s;
|
||||
$file =~ s/<language([^>]+)*/<language$1 indenter="cstyle"/s;
|
||||
}
|
||||
# Twig
|
||||
else
|
||||
{
|
||||
$file =~ s/<language([^>]+)extensions="[^"]*"/<language$1extensions="*.twig;*.html.twig;*.htm.twig"/s;
|
||||
$file =~ s/<language([^>]+)mimetype="[^"]*"/<language$1mimetype="text\/x-twig"/s;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$file =~ s/<language([^>]+)hidden="[^"]*"/<language$1/s;
|
||||
$file =~ s/<language([^>]+)section="[^"]*"/<language$1section="Other"/s;
|
||||
my $extra = " hidden=\"true\"";
|
||||
my $mimetype = "";
|
||||
my $extensions = "";
|
||||
if ($language eq "Twig")
|
||||
{
|
||||
$mimetype = "text/x-twig";
|
||||
if ($syntaxName eq "JavaScript")
|
||||
{
|
||||
$extra = " priority=\"1\"";
|
||||
$extensions = "*.js.twig;*.mjs.twig;*.cjs.twig";
|
||||
}
|
||||
elsif ($syntaxName eq "TypeScript")
|
||||
{
|
||||
$extra = " priority=\"1\"";
|
||||
$extensions = "*.ts.twig;*.mts.twig;*.cts.twig";
|
||||
}
|
||||
}
|
||||
$file =~ s/<language([^>]+)mimetype="[^"]*"/<language$1mimetype="$mimetype"/s;
|
||||
$file =~ s/<language([^>]+)name="([^"]*)"/<language$1name="$2\/$language"$extra/s;
|
||||
$file =~ s/<language([^>]+)alternativeNames="([^"]*)"/<language$1alternativeNames="$2\/$language"/s;
|
||||
$file =~ s/<language([^>]+)extensions="[^"]*"/<language$1extensions="$extensions"/s;
|
||||
}
|
||||
|
||||
# replace list with a include
|
||||
$file =~ s/<list name="([^"]+)">.*?<\/list>/<list name="$1"><include>$1##$syntaxName<\/include><\/list>/gs;
|
||||
|
||||
$file =~ s/<language([^>]+)kateversion="[^"]*"/<language$1kateversion="5.79"/s;
|
||||
$file =~ s/ fallthrough="(true|1)"//gs;
|
||||
|
||||
if ($language eq "Twig")
|
||||
{
|
||||
# remove Mustache syntax
|
||||
if ($root == 1)
|
||||
{
|
||||
$file =~ s/<context name="MustacheJS.*?<\/context>//gs;
|
||||
$file =~ s/<StringDetect attribute="Value" context="#pop#pop!MustacheJS" String="[^"]+[^\/]+\/>//gs;
|
||||
}
|
||||
}
|
||||
elsif ($root == 1 || $ARGV[0] =~ /mustache.xml$/)
|
||||
{
|
||||
$file =~ s/<(?:RegExpr (attribute="Processing Instruction" context="PI"|context="PI" attribute="Processing Instruction")|itemData name="Processing Instruction")[^\/]+\/>|<context name="PI".*?<\/context>//gs;
|
||||
}
|
||||
|
||||
my $find_language = "##$language/$language";
|
||||
my $language_suffix = "/$language";
|
||||
if ($language eq "PHP")
|
||||
{
|
||||
$find_language = "FindPHP";
|
||||
}
|
||||
|
||||
$file =~ s/<IncludeRules\s([^>]*)context="([^"#]*)##(?!Alerts|Comments|Doxygen|Modelines)([^"]+)"/<IncludeRules $1context="$2##$3$language_suffix"/g;
|
||||
$file =~ s/(<context\s[^>]*[^>\/]>)/$1\n<IncludeRules context="$find_language" \/>/g;
|
||||
$file =~ s/(<context\s[^>]*[^>\/])\s*\/>/$1>\n<IncludeRules context="$find_language" \/>\n<\/context>/g;
|
||||
|
||||
if ($language eq "PHP")
|
||||
{
|
||||
$findphp = "<context name=\"FindPHP\" attribute=\"Normal Text\" lineEndContext=\"#stay\">\n<Detect2Chars context=\"##PHP/PHP\" char=\"<\" char1=\"?\" lookAhead=\"true\" />\n</context>\n";
|
||||
$file =~ s/(?=<\/contexts\s*>)/$findphp/;
|
||||
}
|
||||
|
||||
print $output $file;
|
||||
print $output $warning;
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env ruby
|
||||
#
|
||||
# Generates the keyword lists for directives and variables used in nginx and
|
||||
# prints them to stdout, ready to be copy & pasted into nginx.xml.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2023 Jyrki Gadinger <nilsding@nilsding.org>
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Usage:
|
||||
# % ./generate-nginx-lists.rb
|
||||
#
|
||||
# if you want to install the required dependencies provide `INSTALL_GEMS` in
|
||||
# your ENV:
|
||||
# % INSTALL_GEMS=1 ./generate-nginx-lists.rb
|
||||
|
||||
require "bundler/inline"
|
||||
|
||||
gemfile(ENV["INSTALL_GEMS"]) do
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "nokogiri", "~> 1.14"
|
||||
gem "faraday", "~> 2.7"
|
||||
gem "builder", "~> 3.2"
|
||||
end
|
||||
|
||||
def fetch_vars(url)
|
||||
Faraday.get(url)
|
||||
.then { Nokogiri::HTML.parse _1.body }
|
||||
.css("div#content a[href]")
|
||||
.map(&:text)
|
||||
.reject { _1.end_with?("_") } # some vars are just a prefix, ignore those
|
||||
.sort
|
||||
.uniq
|
||||
end
|
||||
|
||||
def build_xml_list(name, url: nil, items: [])
|
||||
builder = Builder::XmlMarkup.new(indent: 2)
|
||||
|
||||
builder.comment! "see #{url} for a full list of #{name}"
|
||||
builder.list(name:) do |b|
|
||||
items.each do |item|
|
||||
b.item item
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
{
|
||||
directives: "https://nginx.org/en/docs/dirindex.html",
|
||||
variables: "https://nginx.org/en/docs/varindex.html",
|
||||
}.each do |name, url|
|
||||
items = fetch_vars(url)
|
||||
|
||||
puts build_xml_list(name, url:, items:).gsub(/^/, ' ' * 4)
|
||||
puts
|
||||
end
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Generate SPDX-Comments syntax file
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2020 Alex Turbov <i.zaufi@gmail.com>
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# To install prerequisites:
|
||||
#
|
||||
# $ pip install --user click jinja2
|
||||
#
|
||||
# To use:
|
||||
#
|
||||
# $ ./generate-spdx-syntax.py > ../syntax/spdx-comments.xml
|
||||
#
|
||||
|
||||
import json
|
||||
import pathlib
|
||||
import urllib.request
|
||||
|
||||
import click
|
||||
import jinja2
|
||||
|
||||
|
||||
def get_json(url):
|
||||
with urllib.request.urlopen(url=url) as body:
|
||||
return json.load(body)
|
||||
|
||||
|
||||
@click.command()
|
||||
@click.argument('template', type=click.File('r'), default='./spdx-comments.xml.tpl')
|
||||
def cli(template):
|
||||
|
||||
data = {
|
||||
'licenses': [
|
||||
*filter(
|
||||
lambda l: not l['licenseId'].endswith('+')
|
||||
, get_json(url='https://spdx.org/licenses/licenses.json')['licenses']
|
||||
)
|
||||
]
|
||||
, 'exceptions': [
|
||||
*filter(
|
||||
lambda l: not l['licenseExceptionId'].endswith('+')
|
||||
, get_json(url='https://spdx.org/licenses/exceptions.json')['exceptions']
|
||||
)
|
||||
]
|
||||
}
|
||||
|
||||
env = jinja2.Environment(
|
||||
keep_trailing_newline=True
|
||||
)
|
||||
env.block_start_string = '<!--['
|
||||
env.block_end_string = ']-->'
|
||||
env.variable_start_string = '<!--{'
|
||||
env.variable_end_string = '}-->'
|
||||
env.comment_start_string = '<!--#'
|
||||
env.comment_end_string = '#-->'
|
||||
|
||||
tpl = env.from_string(template.read())
|
||||
result = tpl.render(data)
|
||||
print(result.strip(), end=None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
cli()
|
||||
# TODO Handle execptions and show errors
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2012-2013 Alex Turbov
|
||||
#
|
||||
# Grab a documented (officially) class list from Qt project web site:
|
||||
# http://qt-project.org/doc/qt-${version}/classes.html
|
||||
#
|
||||
|
||||
version=$1
|
||||
shift
|
||||
|
||||
case "$version" in
|
||||
5*)
|
||||
url="http://qt-project.org/doc/qt-${version}/qtdoc/classes.html"
|
||||
;;
|
||||
4*)
|
||||
url="http://qt-project.org/doc/qt-${version}/classes.html"
|
||||
;;
|
||||
*)
|
||||
echo "*** Error: Only Qt4 and Qt5 supported!"
|
||||
esac
|
||||
|
||||
if [ -n "$version" ]; then
|
||||
tmp=`mktemp`
|
||||
wget -O $tmp "$url"
|
||||
cat $tmp | egrep '^<dd><a href=".*\.html">.*</a></dd>$' \
|
||||
| sed -e 's,<dd><a href=".*\.html">\(.*\)</a></dd>,<item> \1 </item>,' \
|
||||
| grep -v 'qoutputrange'
|
||||
rm $tmp
|
||||
else
|
||||
cat <<EOF
|
||||
Usage:
|
||||
$0 Qt-version
|
||||
|
||||
Note: Only major and minor version required
|
||||
|
||||
Example:
|
||||
$0 4.8
|
||||
EOF
|
||||
fi
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2011-2012 Alex Turbov
|
||||
#
|
||||
# Simplest (and stupid) way to get #defines from a header file(s)
|
||||
#
|
||||
# TODO Think about to use clang to get (an actual) list of free functions and/or types, classes, etc
|
||||
# Using python bindings it seems possible and not so hard to code...
|
||||
#
|
||||
|
||||
basepath=$1
|
||||
shift
|
||||
|
||||
if [ -n "$*" ]; then
|
||||
for f in $*; do
|
||||
egrep '^\s*#\s*define\s+(Q|QT|QT3)_' ${basepath}/$f
|
||||
done \
|
||||
| sed 's,^\s*#\s*define\s\+\(Q[A-Z0-9_]\+\).*,<item> \1 </item>,' \
|
||||
| sort \
|
||||
| uniq \
|
||||
| grep -v EXPORT \
|
||||
| grep -v QT_BEGIN_ \
|
||||
| grep -v QT_END_ \
|
||||
| grep -v QT_MANGLE_
|
||||
else
|
||||
cat <<EOF
|
||||
Usage:
|
||||
$0 basepath [qt-header-filenames]
|
||||
|
||||
Example:
|
||||
$0 /usr/include/qt4/Qt qglobal.h qconfig.h qfeatures.h
|
||||
EOF
|
||||
fi
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
tokens = []
|
||||
with open("makensiscmdhelp.output") as f: # output from `makensis /cmdhelp`
|
||||
for line in f:
|
||||
if line.startswith(" "):
|
||||
continue # line continuation
|
||||
|
||||
tokens.append(line.split()[0])
|
||||
|
||||
keywords = [x[1:] for x in tokens if x.startswith("!")]
|
||||
basefuncs = [x for x in tokens if not x.startswith("!")]
|
||||
|
||||
print("KEYWORDS")
|
||||
for keyword in keywords:
|
||||
print("<item> %s </item>" % keyword)
|
||||
print()
|
||||
|
||||
print("BASEFUNCS")
|
||||
for basefunc in basefuncs:
|
||||
print("<item> %s </item>" % basefunc)
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# SPDX-FileCopyrightText: 2016 Kevin Funk <kfunk@kde.org>
|
||||
#
|
||||
# SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
|
||||
# This script will print XML-like code you can put into the qmake.xml
|
||||
# syntax definition file
|
||||
#
|
||||
# Prerequisite: You need to have a qtbase checkout somewhere
|
||||
#
|
||||
# Usage: qmake-gen.py /path/to/qtbase/
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
|
||||
qt5Source = sys.argv[1]
|
||||
|
||||
qmakeKeywords = subprocess.check_output("ag --nofilename 'QMAKE_[A-Z_0-9]+' {0}/mkspecs -o".format(qt5Source), shell=True).split(os.linesep)
|
||||
extraKeywords = subprocess.check_output("sed -nr 's/\\\section1 ([A-Z_0-9]{{2,100}}).*/\\1/p' {0}/qmake/doc/src/qmake-manual.qdoc".format(qt5Source), shell=True).split(os.linesep)
|
||||
keywords = []
|
||||
keywords = [x.strip() for x in qmakeKeywords]
|
||||
keywords += [x.strip() for x in extraKeywords]
|
||||
keywords = list(set(keywords)) # remove duplicates
|
||||
keywords.sort()
|
||||
|
||||
functions = subprocess.check_output("sed -nr 's/\{{ \\\"(.+)\\\", T_.+/\\1/p' {0}/qmake/library/qmakebuiltins.cpp".format(qt5Source), shell=True).split(os.linesep)
|
||||
functions.sort()
|
||||
|
||||
def printItems(container):
|
||||
for item in container:
|
||||
trimmedText = item.strip()
|
||||
if not trimmedText:
|
||||
continue
|
||||
|
||||
print("<item> %s </item>" % trimmedText)
|
||||
print()
|
||||
|
||||
print("KEYWORDS")
|
||||
printItems(keywords)
|
||||
|
||||
print("FUNCTIONS")
|
||||
printItems(functions)
|
||||
@@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT *****
|
||||
cd data/generators
|
||||
# increase version of spdx-comments.xml.tpl then
|
||||
./generate-spdx-syntax.py > ../syntax/spdx-comments.xml
|
||||
-->
|
||||
<language
|
||||
version="6"
|
||||
kateversion="3.1"
|
||||
name="SPDX-Comments"
|
||||
section="Other"
|
||||
extensions=""
|
||||
mimetype=""
|
||||
author="Alex Turbov (i.zaufi@gmail.com)"
|
||||
license="MIT"
|
||||
hidden="true"
|
||||
>
|
||||
<highlighting>
|
||||
<list name="tags">
|
||||
<item>SPDX-License-Identifier:</item>
|
||||
<item>SPDX-FileContributor:</item>
|
||||
<item>SPDX-FileCopyrightText:</item>
|
||||
<item>SPDX-LicenseInfoInFile:</item>
|
||||
</list>
|
||||
|
||||
<list name="operators">
|
||||
<item>AND</item>
|
||||
<item>OR</item>
|
||||
<item>WITH</item>
|
||||
</list>
|
||||
|
||||
<list name="licenses">
|
||||
<!--[- for license in licenses if not license.isDeprecatedLicenseId ]-->
|
||||
<item><!--{ license.licenseId }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<list name="deprecated-licenses">
|
||||
<!--[- for license in licenses if license.isDeprecatedLicenseId ]-->
|
||||
<item><!--{ license.licenseId }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<list name="exceptions">
|
||||
<!--[- for exception in exceptions if not exception.isDeprecatedLicenseId ]-->
|
||||
<item><!--{ exception.licenseExceptionId }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<list name="deprecated-exceptions">
|
||||
<!--[- for exception in exceptions if exception.isDeprecatedLicenseId ]-->
|
||||
<item><!--{ exception.licenseExceptionId }--></item>
|
||||
<!--[- endfor ]-->
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context name="Normal" attribute="SPDX Tag" lineEndContext="#pop">
|
||||
<WordDetect String="SPDX-License-Identifier:" attribute="SPDX Tag" context="license-expression" />
|
||||
<keyword String="tags" attribute="SPDX Tag" />
|
||||
</context>
|
||||
|
||||
<context name="license-expression" attribute="SPDX Value" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<AnyChar String="()+" context="#stay" attribute="SPDX License Expression Operator" />
|
||||
<keyword String="licenses" context="#stay" attribute="SPDX License" />
|
||||
<keyword String="deprecated-licenses" context="#stay" attribute="SPDX Deprecated License" />
|
||||
<keyword String="exceptions" context="#stay" attribute="SPDX License Exception" />
|
||||
<keyword String="deprecated-exceptions" context="#stay" attribute="SPDX Deprecated License Exception" />
|
||||
<keyword String="operators" context="#stay" attribute="SPDX License Expression Operator" />
|
||||
<RegExpr attribute="SPDX License" context="#stay" String="\bLicenseRef-[^\s]+" />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="SPDX Tag" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />
|
||||
<itemData name="SPDX Value" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />
|
||||
<itemData name="SPDX License" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />
|
||||
<itemData name="SPDX License Exception" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />
|
||||
<itemData name="SPDX Deprecated License" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />
|
||||
<itemData name="SPDX Deprecated License Exception" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />
|
||||
<itemData name="SPDX License Expression Operator" defStyleNum="dsOperator" italic="true" spellChecking="false" />
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<keywords casesensitive="1" weakDeliminator=":-." />
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: indent-width 2; -->
|
||||
+498
@@ -0,0 +1,498 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-FileCopyrightText: 2023 Jonathan Poelen <jonathan.poelen@gmail.com>
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
from pathlib import Path
|
||||
from collections import defaultdict
|
||||
from typing import TextIO
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
exclude_line = {
|
||||
' - non-standard\n',
|
||||
' - experimental\n',
|
||||
' - deprecated\n',
|
||||
'page-type: css-combinator\n',
|
||||
'page-type: css-selector\n',
|
||||
'page-type: css-module\n',
|
||||
'page-type: landing-page\n',
|
||||
'page-type: guide\n',
|
||||
}
|
||||
|
||||
page_type_accepted = {
|
||||
'page-type: css-type\n',
|
||||
'page-type: css-function\n',
|
||||
'page-type: css-property\n',
|
||||
'page-type: css-keyword\n',
|
||||
'page-type: css-shorthand-property\n',
|
||||
'page-type: css-pseudo-element\n',
|
||||
'page-type: css-pseudo-class\n',
|
||||
'page-type: css-at-rule-descriptor\n',
|
||||
'page-type: css-at-rule\n',
|
||||
'page-type: css-media-feature\n',
|
||||
'page-type: svg-attribute\n',
|
||||
}
|
||||
|
||||
exclude_title = {
|
||||
'<alpha-value>',
|
||||
'<angle>',
|
||||
'<angle-percentage>',
|
||||
'<basic-shape>',
|
||||
'<calc-constant>',
|
||||
'<calc-sum>',
|
||||
'<color-interpolation-method>',
|
||||
'<color>',
|
||||
'<custom-ident>',
|
||||
'<dashed-ident>',
|
||||
'<display-listitem>',
|
||||
'<display-inside>',
|
||||
'<dimension>',
|
||||
'<easing-function>'
|
||||
'<filter-function>',
|
||||
'<flex>',
|
||||
'<frequency-percentage>',
|
||||
'<frequency>',
|
||||
'<gradient>',
|
||||
'<hex-color>',
|
||||
'<hue>',
|
||||
'<hue-interpolation-method>',
|
||||
'<ident>',
|
||||
'<image>',
|
||||
'<integer>',
|
||||
'<length>',
|
||||
'<length-percentage>',
|
||||
'<number>',
|
||||
'<percentage>',
|
||||
'<position>',
|
||||
'<ratio>',
|
||||
'<resolution>',
|
||||
'<string>',
|
||||
'<time-percentage>',
|
||||
'<time>',
|
||||
'<transform-function>',
|
||||
'"!important"',
|
||||
}
|
||||
|
||||
properties_ignore_value = (
|
||||
'counter-increment',
|
||||
'counter-reset',
|
||||
'counter-set',
|
||||
'text-rendering',
|
||||
'page',
|
||||
)
|
||||
|
||||
|
||||
units: list[str] = []
|
||||
colors: set[str] = set()
|
||||
system_colors: set[str] = set()
|
||||
deprecated_system_colors: set[str] = set()
|
||||
values: set[str] = set()
|
||||
properties: set[str] = set()
|
||||
svg_values: set[str] = set()
|
||||
svg_properties: set[str] = set()
|
||||
functions: set[str] = set()
|
||||
pseudo_classes: set[str] = set()
|
||||
pseudo_elements: set[str] = set()
|
||||
experimental_pseudo_classes: set[str] = set()
|
||||
experimental_pseudo_elements: set[str] = set()
|
||||
at_rules: set[str] = set()
|
||||
media_features: set[str] = set()
|
||||
media_feature_values: set[str] = set()
|
||||
|
||||
|
||||
_update_version_extractor = re.compile(r' version="(\d+)" ')
|
||||
|
||||
def update_version(s: str) -> str:
|
||||
return _update_version_extractor.sub(lambda m: f' version="{int(m[1])+1}" ', s, count=1)
|
||||
|
||||
|
||||
_md_value_extractor = re.compile(r'(?<=[^\w][ /])`([-\w][-\w\d]+(?:<[^>]+>[?+*])?)`')
|
||||
_html_value_extractor = re.compile(r'<code>([-\w][-\w\d]+)</code>')
|
||||
_is_md_value = re.compile(r'^\s*- `')
|
||||
_is_html_table_desc = re.compile(r'^\s+<td><code>')
|
||||
|
||||
def css_parse_values(f: TextIO, prop: str, values: set[str]) -> None:
|
||||
line:str = ''
|
||||
# Format:
|
||||
# ## Syntax or ### Syntax
|
||||
#
|
||||
# ```css
|
||||
# (optional)
|
||||
# ```
|
||||
# ## Values or ### Values or not...
|
||||
#
|
||||
# - `ident` or html table <td><code>....</code></td>
|
||||
#
|
||||
# ## SVG only ... (optional)
|
||||
# ## other title
|
||||
for line in f:
|
||||
if line.endswith('## Syntax\n') or line.endswith('## Values\n') or '## SVG only' in line:
|
||||
for line in f:
|
||||
if _is_md_value.match(line):
|
||||
if 'deprecated' not in line:
|
||||
values.update(_md_value_extractor.findall(line))
|
||||
elif line.startswith('#'):
|
||||
if not (line.endswith('## Values\n') or '## SVG only' in line
|
||||
or (prop == 'display'
|
||||
and (line.endswith('## Grouped values\n')
|
||||
or line.endswith('## Outside\n')
|
||||
or line.endswith('## Inside\n')
|
||||
or line.endswith('## List Item\n')
|
||||
or line.endswith('## Internal\n')
|
||||
or line.endswith('## Box\n')
|
||||
or line.endswith('## Precomposed\n')
|
||||
))
|
||||
):
|
||||
return
|
||||
elif line == '```css\n':
|
||||
for line in f:
|
||||
if line.startswith('```\n'):
|
||||
break
|
||||
elif _is_html_table_desc.match(line):
|
||||
values.update(_html_value_extractor.findall(line))
|
||||
|
||||
|
||||
def css_parse_named_colors(f: TextIO) -> set[str]:
|
||||
return set(re.findall('\n <td>(?:\n )?<code>([a-z]+)</code>', f.read()))
|
||||
|
||||
|
||||
def css_parse_units(f: TextIO) -> list[str]:
|
||||
return re.findall(r'`([^`]+)`', ''.join(re.findall(r'\n\| (`[^|]+)', f.read())))
|
||||
|
||||
|
||||
_svg_values_extractor = re.compile(r'<th scope="row">Value</th>\n\s*<td>(.*?)</td>', re.DOTALL)
|
||||
_svg_value_extractor = re.compile(r'<code>([-\w\d]+)</code>')
|
||||
|
||||
def css_parse_svg_attribute(f: TextIO, prop: str, properties: set[str], values: set[str]) -> None:
|
||||
contents = f.read()
|
||||
if 'can be used as a CSS property' in contents:
|
||||
properties.add(prop)
|
||||
m = _svg_values_extractor.search(contents)
|
||||
if m:
|
||||
values.update(_svg_value_extractor.findall(m[1]))
|
||||
|
||||
|
||||
_experimental_selector_extractor = re.compile(r'\n- {{CSSxRef([^}]+)}} {{Experimental_Inline}}')
|
||||
_selector_extractor = re.compile(r'":+([-\w\d]+)[()]*"')
|
||||
|
||||
def css_parse_pseudo_classes_or_elements(f: TextIO) -> tuple[
|
||||
set[str], # experimental
|
||||
list[str]
|
||||
]:
|
||||
s = f.read()
|
||||
experimental_str = ''.join(_experimental_selector_extractor.findall(s))
|
||||
return (set(_selector_extractor.findall(experimental_str)), _selector_extractor.findall(s))
|
||||
|
||||
|
||||
if len(sys.argv) < 5:
|
||||
print(f'''{Path(sys.argv[0]).name} content-main-directory syntax/css.xml sass-site-directory syntax/scss.xml
|
||||
|
||||
content-main-directory is https://github.com/mdn/content/ (https://github.com/mdn/content/archive/refs/heads/main.zip)
|
||||
sass-site-directory is https://github.com/sass/sass-site/tree/main (https://github.com/sass/sass-site/archive/refs/heads/main.zip)
|
||||
''', file=sys.stderr)
|
||||
exit(1)
|
||||
|
||||
css_dir = Path(sys.argv[1])
|
||||
css_filename = Path(sys.argv[2])
|
||||
scss_dir = Path(sys.argv[3])
|
||||
scss_filename = Path(sys.argv[4])
|
||||
|
||||
|
||||
tmp_pseudo_classes = (set(), ())
|
||||
tmp_pseudo_elements = (set(), ())
|
||||
|
||||
for pattern in (
|
||||
'files/en-us/web/svg/attribute/**/',
|
||||
'files/en-us/web/css/**/',
|
||||
):
|
||||
for md in css_dir.glob(pattern):
|
||||
with open(md/'index.md', encoding='utf8') as f:
|
||||
if f.readline() != '---\n':
|
||||
continue
|
||||
|
||||
title = f.readline()[7:-1]
|
||||
if title in exclude_title:
|
||||
continue
|
||||
|
||||
if title.startswith('"'):
|
||||
title = title[1:-1]
|
||||
|
||||
page_type = ''
|
||||
for line in f:
|
||||
if line in exclude_line:
|
||||
page_type = ''
|
||||
break
|
||||
|
||||
if line.startswith('page-type: '):
|
||||
if line not in page_type_accepted:
|
||||
raise Exception(f'Unknown {line[:-1]}')
|
||||
page_type = line[11:-1]
|
||||
|
||||
if line == '---\n':
|
||||
break
|
||||
|
||||
if page_type == 'css-property' or page_type == 'css-at-rule-descriptor':
|
||||
properties.add(title)
|
||||
if not title.endswith('-name') and title not in properties_ignore_value:
|
||||
css_parse_values(f, title, values)
|
||||
elif page_type == 'css-shorthand-property':
|
||||
properties.add(title)
|
||||
elif page_type == 'css-pseudo-class':
|
||||
pseudo_classes.add(title[1:].removesuffix('()'))
|
||||
elif page_type == 'css-pseudo-element':
|
||||
pseudo_elements.add(title[2:].removesuffix('()'))
|
||||
elif page_type == 'css-type':
|
||||
if title == '<named-color>':
|
||||
colors = css_parse_named_colors(f)
|
||||
if title == '<system-color>':
|
||||
css_parse_values(f, '', system_colors)
|
||||
deprecated_system_colors = set(re.findall('\n- `([^`]+)` {{deprecated_inline}}', f.read()))
|
||||
else:
|
||||
css_parse_values(f, '', values)
|
||||
elif page_type == 'css-function':
|
||||
functions.add(title[:-2])
|
||||
elif page_type == 'css-at-rule':
|
||||
at_rules.add(title)
|
||||
elif page_type == 'css-media-feature':
|
||||
media_features.add(title)
|
||||
css_parse_values(f, title, media_feature_values)
|
||||
elif page_type == 'css-keyword':
|
||||
values.add(title)
|
||||
elif title == 'CSS values and units':
|
||||
units = css_parse_units(f)
|
||||
elif title == 'Pseudo-classes':
|
||||
tmp_pseudo_classes = css_parse_pseudo_classes_or_elements(f)
|
||||
elif title == 'Pseudo-elements':
|
||||
tmp_pseudo_elements = css_parse_pseudo_classes_or_elements(f)
|
||||
elif page_type == 'svg-attribute':
|
||||
css_parse_svg_attribute(f, title, svg_properties, svg_values)
|
||||
elif title == 'CSS value functions':
|
||||
functions.update(re.findall(r'\n- {{CSSxRef\("[^"]+", "([-\w\d]+)\(\)"\)}}\n', f.read()))
|
||||
|
||||
|
||||
experimental_pseudo_classes = tmp_pseudo_classes[0]
|
||||
experimental_pseudo_classes -= pseudo_classes
|
||||
pseudo_classes.update(tmp_pseudo_classes[1])
|
||||
|
||||
experimental_pseudo_elements = tmp_pseudo_elements[0]
|
||||
experimental_pseudo_elements -= pseudo_elements
|
||||
pseudo_elements.update(tmp_pseudo_elements[1])
|
||||
|
||||
|
||||
global_values = {
|
||||
'auto',
|
||||
'inherit',
|
||||
'initial',
|
||||
'revert',
|
||||
'revert-layer',
|
||||
'unset',
|
||||
}
|
||||
values -= global_values
|
||||
svg_values -= global_values
|
||||
pseudo_classes -= experimental_pseudo_classes
|
||||
pseudo_elements -= experimental_pseudo_elements
|
||||
|
||||
# add values of functions
|
||||
values.update((
|
||||
# repeat()
|
||||
'auto-fill',
|
||||
'auto-fit',
|
||||
))
|
||||
|
||||
# move some keyword colors in values
|
||||
for special_color in ('transparent', 'currentcolor'):
|
||||
values.add(special_color)
|
||||
colors.discard(special_color)
|
||||
|
||||
# fix not specified value in mdn file
|
||||
if 'user-invalid' in experimental_pseudo_classes:
|
||||
pseudo_classes.discard('user-valid')
|
||||
experimental_pseudo_classes.add('user-valid')
|
||||
media_features.update((
|
||||
'min-width',
|
||||
'max-width',
|
||||
'min-height',
|
||||
'max-height',
|
||||
))
|
||||
|
||||
# fix errors in mdn file
|
||||
for e in ('has', 'host-context'):
|
||||
pseudo_classes.add(e)
|
||||
experimental_pseudo_classes.discard(e)
|
||||
|
||||
# @font-format functions
|
||||
functions.update((
|
||||
'format',
|
||||
'local',
|
||||
'tech',
|
||||
))
|
||||
|
||||
|
||||
# def show(name, values):
|
||||
# print(f'{name} ({len(values)}):')
|
||||
# print('\n'.join(sorted(values)), end='\n\n')
|
||||
#
|
||||
# show('properties', properties)
|
||||
# show('svg properties', svg_properties)
|
||||
# show('values', values)
|
||||
# show('svg values', svg_values)
|
||||
# show('global values', global_values)
|
||||
# show('functions', functions)
|
||||
# show('pseudo-classes', pseudo_classes)
|
||||
# show('pseudo-elements', pseudo_elements)
|
||||
# show('experimental pseudo-classes', experimental_pseudo_classes)
|
||||
# show('experimental pseudo-elements', experimental_pseudo_elements)
|
||||
# show('at-rules', at_rules)
|
||||
# show('media-features', media_features)
|
||||
# show('media-features values', media_feature_values)
|
||||
# show('colors', colors)
|
||||
# show('system colors', system_colors)
|
||||
# show('deprecated system colors', deprecated_system_colors)
|
||||
# show('units', units)
|
||||
# print('units reg:', '|'.join(units))
|
||||
|
||||
|
||||
#
|
||||
# Update CSS
|
||||
#
|
||||
|
||||
sep = '\n '
|
||||
css_replacements = {
|
||||
prop: f'</item>{sep}<item>'.join(sorted(seq))
|
||||
for prop, seq in (
|
||||
('properties', properties),
|
||||
('values', values),
|
||||
('value keywords', global_values),
|
||||
('functions', functions),
|
||||
('pseudo-classes', pseudo_classes),
|
||||
('pseudo-elements', pseudo_elements),
|
||||
('media features', media_features)
|
||||
)
|
||||
}
|
||||
for prop, seq in (('properties', svg_properties - properties), ('values', svg_values - values)):
|
||||
if seq:
|
||||
items = f'</item>{sep}<item>'.join(sorted(seq))
|
||||
css_replacements[prop] += f'</item>\n{sep}<!-- SVG only -->\n{sep}<item>{items}'
|
||||
|
||||
rep1 = f'</item>{sep}<item>'.join(sorted(colors))
|
||||
rep2 = f'</item>{sep}<item>'.join(sorted(system_colors))
|
||||
css_replacements['colors'] = f'{rep1}</item>{sep}{sep}<!-- System colors -->{sep}<item>{rep2}'
|
||||
|
||||
item_extractor = re.compile('<item>([^-<][^<]*)')
|
||||
|
||||
current_at_rules = set()
|
||||
|
||||
def _css_update_and_extract_items(m) -> str:
|
||||
seq = css_replacements.get(m[1])
|
||||
if seq:
|
||||
end = ' ' if m[3] == '</list>' else sep
|
||||
return f'<list name="{m[1]}">{sep}<item>{seq}</item>\n{end}{m[3]}'
|
||||
|
||||
current_at_rules.update(item_extractor.findall(m[2]))
|
||||
return m[0]
|
||||
|
||||
|
||||
css_content = css_filename.read_text()
|
||||
original_css_content = css_content
|
||||
|
||||
names = f"{'|'.join(css_replacements)}|at-rules(?: definitions)?"
|
||||
css_content = re.sub(rf'<list name="({names})">(.*?)(</list>|<!-- manual list -->)',
|
||||
_css_update_and_extract_items, css_content, flags=re.DOTALL)
|
||||
|
||||
_regexpr_unit_prefix = r'(<RegExpr attribute="Unit".*?String="\(%\|\()'
|
||||
regexpr_unit_extractor = re.compile(fr'{_regexpr_unit_prefix}([^)]+)')
|
||||
|
||||
css_content = regexpr_unit_extractor.sub('\\1' + "|".join(units), css_content, 1)
|
||||
|
||||
if original_css_content != css_content:
|
||||
css_content = update_version(css_content)
|
||||
css_filename.write_text(css_content)
|
||||
|
||||
|
||||
def show_at_rule_difference(language: str, old_at_rules: set[str], new_at_rules: set[str]) -> None:
|
||||
at_rule_added = new_at_rules - old_at_rules
|
||||
at_rule_removed = old_at_rules - new_at_rules
|
||||
nl = '\n '
|
||||
if at_rule_added or at_rule_removed:
|
||||
print(f"""\x1b[31m{language} At-rules requires a manual update
|
||||
New ({len(at_rule_added)}):\x1b[0m
|
||||
{nl.join(at_rule_added)}
|
||||
\x1b[31mRemoved ({len(at_rule_removed)}):\x1b[0m
|
||||
{nl.join(at_rule_removed)}""")
|
||||
|
||||
show_at_rule_difference('CSS', current_at_rules, at_rules)
|
||||
|
||||
#
|
||||
# Extract SCSS data
|
||||
#
|
||||
|
||||
scss_functions:list[str] = []
|
||||
scss_at_rules:set[str] = {'@content', '@return'}
|
||||
|
||||
_function_list_extractor = re.compile(r'{% function (.*?) %}')
|
||||
_function_extractor = re.compile(r"'([-._a-zA-Z0-9]+)\(")
|
||||
_at_rule_extractor = re.compile(r'@[-a-z0-9]+')
|
||||
|
||||
for md in sorted(scss_dir.glob('source/documentation/modules/**/*.md')):
|
||||
func_list = _function_list_extractor.findall(md.read_text())
|
||||
func_items = set(_function_extractor.findall(''.join(func_list)))
|
||||
scss_functions.append(f'\n{sep}<!-- {md.stem} -->')
|
||||
scss_functions.extend(f'{sep}<item>{func}</item>' for func in sorted(func_items - functions))
|
||||
|
||||
for md in scss_dir.glob('source/documentation/at-rules/**/*.md'):
|
||||
with open(md) as f:
|
||||
f.readline()
|
||||
scss_at_rules.update(_at_rule_extractor.findall(f.readline()))
|
||||
|
||||
subproperties = set(
|
||||
'-'.join(splitted[i:n])
|
||||
for prop in properties
|
||||
for splitted in (prop.rsplit('-', prop.count('-') - 1) # '-aaa-bbb' -> ['-aaa', 'bbb']
|
||||
if prop.startswith('-')
|
||||
else prop.split('-'), ) # 'aaa-bbb' -> ['aaa', 'bbb']
|
||||
for i in range(len(splitted))
|
||||
for n in range(i+1, len(splitted)+1)
|
||||
)
|
||||
|
||||
#
|
||||
# Update SCSS
|
||||
#
|
||||
|
||||
scss_current_at_rules = set()
|
||||
|
||||
def _scss_update_and_extract_items(m) -> str:
|
||||
name = m[1]
|
||||
|
||||
if name == 'functions':
|
||||
return f"""<list name="functions">
|
||||
<include>functions##CSS</include>
|
||||
|
||||
<!-- https://sass-lang.com/documentation/modules/ -->{f''.join(scss_functions)}
|
||||
</list>"""
|
||||
|
||||
if name == 'at-rules':
|
||||
scss_current_at_rules.update(_at_rule_extractor.findall(m[2]))
|
||||
return m[0]
|
||||
|
||||
# sub-properties
|
||||
items = f'</item>{sep}<item>'.join(sorted(subproperties - properties))
|
||||
return f'<list name="{name}">{sep}<item>{items}</item>\n </list>'
|
||||
|
||||
scss_content = scss_filename.read_text()
|
||||
original_scss_content = scss_content
|
||||
|
||||
scss_content = re.sub(r'<list name="(sub-properties|functions|at-rules)">(.*?)</list>',
|
||||
_scss_update_and_extract_items, scss_content, count=3, flags=re.DOTALL)
|
||||
|
||||
scss_content = re.sub(r'<!ENTITY pseudoclasses "[^"]*">',
|
||||
f'<!ENTITY pseudoclasses "{"|".join(sorted(pseudo_classes))}">',
|
||||
scss_content, count=1)
|
||||
|
||||
scss_content = regexpr_unit_extractor.sub('\\1' + "|".join(units), scss_content, 1)
|
||||
|
||||
if original_scss_content != scss_content:
|
||||
scss_content = update_version(scss_content)
|
||||
scss_filename.write_text(scss_content)
|
||||
|
||||
show_at_rule_difference('SCSS', scss_current_at_rules, scss_at_rules)
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-FileCopyrightText: 2023 Jonathan Poelen <jonathan.poelen@gmail.com>
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
from pathlib import Path
|
||||
from urllib import request
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
if len(sys.argv) < 1:
|
||||
print(f'{sys.argv[0]} syntax/less.xml', file=sys.stderr)
|
||||
exit(1)
|
||||
|
||||
#
|
||||
# Extract functions
|
||||
#
|
||||
|
||||
data = request.urlopen('https://lesscss.org/functions/').read().decode()
|
||||
|
||||
functions = re.findall(r'</a>([-_\w\d]+)</h3>', data, flags=re.DOTALL)
|
||||
functions.append('%')
|
||||
|
||||
#
|
||||
# Update syntax
|
||||
#
|
||||
|
||||
sep = '\n '
|
||||
new_list = f"""<list name="functions">
|
||||
<include>functions##CSS</include>
|
||||
|
||||
<!-- Less functions, @see http://lesscss.org/functions/ -->
|
||||
<item>{f'</item>{sep}<item>'.join(sorted(functions))}</item>
|
||||
</list>"""
|
||||
|
||||
less_filename = Path(sys.argv[1])
|
||||
less_content = less_filename.read_text()
|
||||
original_less_content = less_content
|
||||
less_content = re.sub(r'<list name="functions">.*?</list>',
|
||||
new_list, less_content, count=1, flags=re.DOTALL)
|
||||
|
||||
if original_less_content != less_content:
|
||||
less_content = re.sub(' version="(\d+)" ', lambda m: f' version="{int(m[1])+1}" ',
|
||||
less_content, count=1)
|
||||
less_filename.write_text(less_content)
|
||||
@@ -0,0 +1,666 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2001 Joseph Wenninger <jowenn@kde.org>
|
||||
SPDX-FileCopyrightText: 2002 Anders Lund <anders@alweb.dk>
|
||||
SPDX-FileCopyrightText: 2003 Simon Huerlimann <simon.huerlimann@access.unizh.ch>
|
||||
SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
|
||||
SPDX-FileCopyrightText: 2008 Wilbert Berendsen <info@wilbertberendsen.nl>
|
||||
|
||||
This file describes the XML format used for syntax highlight descriptions
|
||||
for the Kate text editor (https://kate-editor.org), which is part of the
|
||||
KDE desktop environment (https://kde.org).
|
||||
You'll find the "Working with Syntax Highlighting" at
|
||||
https://docs.kde.org/stable5/en/kate/katepart/highlight.html
|
||||
|
||||
You can validate your syntax files using "validatehl.sh yourSyntax.xml".
|
||||
This needs xmllint from the libxml2 XML library.
|
||||
|
||||
In any case, the katehighlightingindexer will validate all files bundled
|
||||
with KTextEditor during compile time and fail on errors.
|
||||
|
||||
TODO
|
||||
- find a more readable way for the - -dtdvalid stuff, it's just annoying
|
||||
xml comments don't allow it.
|
||||
-->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
||||
<!--
|
||||
Default Styles
|
||||
Allowed predefined default styles for itemData, available are:
|
||||
- dsNormal, used for normal text
|
||||
- dsKeyword, used for keywords
|
||||
- dsFunction, used for function calls
|
||||
- dsVariable, used for variables
|
||||
- dsControlFlow, used for control flow, e.g. if, then, else, continue, break
|
||||
- dsOperator, used for operators such as +, -, *, ::
|
||||
- dsBuiltIn, used for built-in language classes and functions
|
||||
- dsExtension,used for extensions, such as boost, Qt
|
||||
- dsPreprocessor, used for preprocessor statements
|
||||
- dsAttribute,used for attributes, e.g. @override in java
|
||||
|
||||
- dsChar, used for a character
|
||||
- dsSpecialChar, used for escaped characters
|
||||
- dsString, used for strings
|
||||
- dsVerbatimString, used for strings such as HERE docs
|
||||
- dsSpecialString, used for strings such as regular expressions or LaTeX math mode
|
||||
- dsImport, used for includes, imports and modules
|
||||
|
||||
- dsDataType, used for data types
|
||||
- dsDecVal, used for decimal values
|
||||
- dsBaseN, used for values with a base other than 10
|
||||
- dsFloat, used for float values
|
||||
- dsConstant, used for language constants
|
||||
|
||||
- dsComment, used for comments
|
||||
- dsDocumentation, used for comments that are API documentation
|
||||
- dsAnnotation, used for annotation in comments, e.g. @param in doxygen
|
||||
- dsCommentVar, used for variables in comments, e.g. after @param in doxygen
|
||||
- dsRegionMarker, used for region markers
|
||||
- dsInformation, used for information in comments, e.g. @note in doxygen
|
||||
- dsWarning, used for warnings in comments, e.g. @warning in doxygen
|
||||
- dsAlert, used for warning messages such as TODO, WARNING in comments
|
||||
|
||||
- dsOthers, used for 'other' things
|
||||
- dsError, used for error highlighting.
|
||||
-->
|
||||
<xs:simpleType name="defStyles">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="dsNormal"/>
|
||||
<xs:enumeration value="dsKeyword"/>
|
||||
<xs:enumeration value="dsFunction"/>
|
||||
<xs:enumeration value="dsVariable"/>
|
||||
<xs:enumeration value="dsControlFlow"/>
|
||||
<xs:enumeration value="dsOperator"/>
|
||||
<xs:enumeration value="dsBuiltIn"/>
|
||||
<xs:enumeration value="dsExtension"/>
|
||||
<xs:enumeration value="dsPreprocessor"/>
|
||||
<xs:enumeration value="dsAttribute"/>
|
||||
<xs:enumeration value="dsChar"/>
|
||||
<xs:enumeration value="dsSpecialChar"/>
|
||||
<xs:enumeration value="dsString"/>
|
||||
<xs:enumeration value="dsVerbatimString"/>
|
||||
<xs:enumeration value="dsSpecialString"/>
|
||||
<xs:enumeration value="dsImport"/>
|
||||
<xs:enumeration value="dsDataType"/>
|
||||
<xs:enumeration value="dsDecVal"/>
|
||||
<xs:enumeration value="dsBaseN"/>
|
||||
<xs:enumeration value="dsFloat"/>
|
||||
<xs:enumeration value="dsConstant"/>
|
||||
<xs:enumeration value="dsComment"/>
|
||||
<xs:enumeration value="dsDocumentation"/>
|
||||
<xs:enumeration value="dsAnnotation"/>
|
||||
<xs:enumeration value="dsCommentVar"/>
|
||||
<xs:enumeration value="dsRegionMarker"/>
|
||||
<xs:enumeration value="dsInformation"/>
|
||||
<xs:enumeration value="dsWarning"/>
|
||||
<xs:enumeration value="dsAlert"/>
|
||||
<xs:enumeration value="dsOthers"/>
|
||||
<xs:enumeration value="dsError"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!--
|
||||
Char type
|
||||
A sequence of exactly 1 character
|
||||
-->
|
||||
<xs:simpleType name="char">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:length value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!--
|
||||
Language specification
|
||||
name: The name of this syntax description. Used in the Highlightning Mode menu
|
||||
alternativeNames: A list of alternative names to match the language on. [optional]
|
||||
section: The logical group to which this syntax description belongs. Used for sub menus
|
||||
extensions: A file glob or pattern to decide for which documents to use this syntax description
|
||||
style: The style that this highlighter provides. It is used through required-syntax-style by the indenters. [optional]
|
||||
mimetype: A list of mimetypes to decide for which documents to use this syntax description [optional]
|
||||
version: Version number of this syntax description
|
||||
kateversion: Kate version required for using this file
|
||||
casesensitive: Ignored but preserved to maintain compatibility in older versions of KF5.
|
||||
priority: Priority of this language, if more than one are usable for the file [optional]
|
||||
author: Name of author of this hl file [optional]
|
||||
license: License for this hl file [optional]
|
||||
indenter: Name of the Indenter to use for this highlighting mode per default, like "cstyle" [optional]
|
||||
hidden: Should it be hidden in menu [boolean, optional, default=false]
|
||||
-->
|
||||
<xs:element name="language">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="highlighting"/>
|
||||
<xs:element minOccurs="0" ref="general"/>
|
||||
<xs:element minOccurs="0" ref="spellchecking"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" use="required"/>
|
||||
<xs:attribute name="alternativeNames"/>
|
||||
<xs:attribute name="section" use="required" type="xs:NMTOKEN"/>
|
||||
<xs:attribute name="extensions" use="required"/>
|
||||
<xs:attribute name="version" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="kateversion" use="required" type="xs:decimal"/>
|
||||
<xs:attribute name="style"/>
|
||||
<xs:attribute name="mimetype"/>
|
||||
<!-- always ignored, <keywords casesensitive> must be used -->
|
||||
<xs:attribute name="casesensitive" type="xs:boolean"/>
|
||||
<xs:attribute name="priority" type="xs:integer"/>
|
||||
<xs:attribute name="author"/>
|
||||
<xs:attribute name="license"/>
|
||||
<xs:attribute name="indenter"/>
|
||||
<xs:attribute name="hidden" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- General options -->
|
||||
<xs:element name="general">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="folding"/>
|
||||
<xs:element ref="comments"/>
|
||||
<xs:element ref="keywords"/>
|
||||
<xs:element ref="emptyLines"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
List of folding
|
||||
indentationsensitive: If true, the code folding is indentation based.
|
||||
-->
|
||||
<xs:element name="folding">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="indentationsensitive" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- List of comments -->
|
||||
<xs:element name="comments">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="comment"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Comment specification
|
||||
name: Type of this comment. Allowed are 'singleLine' and 'multiLine'
|
||||
start: The comment starts with this string
|
||||
end: The comment ends with this string [optional]
|
||||
region: The region name of the foldable multiline comment. If you have
|
||||
beginRegion="Comment" ... endRegion="Comment" you should use
|
||||
region="Comment". This way uncomment works even if you do not
|
||||
select all the text of the multiline comment.
|
||||
position: only availalbe for type singleLine. Default is column0, to insert
|
||||
the single line comment characters after the whitespaces
|
||||
(= before the first non space) set position to "afterwhitespace"
|
||||
-->
|
||||
<xs:element name="comment">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="singleLine"/>
|
||||
<xs:enumeration value="multiLine"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="start" use="required"/>
|
||||
<xs:attribute name="end"/>
|
||||
<xs:attribute name="region"/>
|
||||
<xs:attribute name="position">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="afterwhitespace"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Keyword options
|
||||
casesensitive: Whether keywords are matched case sensitive. [boolean, optional, default=true]
|
||||
weakDeliminator: Add weak deliminators [optional, default: ""]
|
||||
additionalDeliminator: Add deliminators [optional]
|
||||
wordWrapDeliminator: characters that are used to wrap long lines [optional]
|
||||
|
||||
-->
|
||||
<xs:element name="keywords">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="casesensitive" type="xs:boolean"/>
|
||||
<xs:attribute name="weakDeliminator"/>
|
||||
<xs:attribute name="additionalDeliminator"/>
|
||||
<xs:attribute name="wordWrapDeliminator"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Treat lines that match a given regular expression as empty line. This is
|
||||
needed for example in Python for comments (#...), as then the indentation
|
||||
based folding should ignore the line.
|
||||
This is only implemented for indentation based folding. If the folding
|
||||
is not indentation based, the emptyLines are not used.
|
||||
-->
|
||||
<xs:element name="emptyLines">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="emptyLine"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
One empty line regular expression.
|
||||
regexpr: The regular expression, example from python: ^\s*#.*$
|
||||
casesensitive: Sets, whether the regular expression match is performed case sesitive
|
||||
-->
|
||||
<xs:element name="emptyLine">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="regexpr" use="required"/>
|
||||
<xs:attribute name="casesensitive" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- Highlighting specification -->
|
||||
<xs:element name="highlighting">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="list"/>
|
||||
<xs:element ref="contexts"/>
|
||||
<xs:element ref="itemDatas"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
List of items
|
||||
name: Name of this list
|
||||
-->
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="item"/>
|
||||
<xs:element ref="include"/>
|
||||
</xs:choice>
|
||||
<xs:attribute name="name" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
List item
|
||||
contains string used in <keyword>
|
||||
-->
|
||||
<xs:element name="item" type="xs:string"/>
|
||||
<!--
|
||||
List include
|
||||
contains a name of <keyword>
|
||||
-->
|
||||
<xs:element name="include" type="xs:string"/>
|
||||
<!-- List of contexts -->
|
||||
<xs:element name="contexts">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="context"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
context specification
|
||||
name: The name of this context specification. Used in '*Context' attributes [optional]
|
||||
attribute: The name of the ItemData to be used for matching text
|
||||
lineEndContext: Next context if end of line is encountered [optional, default='#stay']
|
||||
lineEmptyContext: Next context if an empty line is encountered [optional, default=value of lineEndContext]
|
||||
fallthrough: Use a fallthrough context [optional]
|
||||
deprecated since 5.62 but preserved to maintain compatibility in older versions of KF5
|
||||
fallthroughContext: Fall through to this context [optional, default='#stay']
|
||||
dynamic: Dynamic context [boolean, optional]
|
||||
deprecated since always but preserved to maintain compatibility in older versions of KF5
|
||||
noIndentationBasedFolding: Python uses indentation based folding. However, Python has parts where
|
||||
it does not use indentation based folding (e.g. for """ strings). In this case
|
||||
switch to an own context and set this attribute to true. Then the indentation
|
||||
based folding will ignore this parts and not change folding markers. [optional]
|
||||
stopEmptyLineContextSwitchLoop: Do not continue the context switching if an empty line is encountered. [boolean, optional, default=false]
|
||||
-->
|
||||
<xs:element name="context">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="keyword"/>
|
||||
<xs:element ref="Float"/>
|
||||
<xs:element ref="HlCOct"/>
|
||||
<xs:element ref="HlCHex"/>
|
||||
<xs:element ref="Int"/>
|
||||
<xs:element ref="DetectChar"/>
|
||||
<xs:element ref="Detect2Chars"/>
|
||||
<xs:element ref="AnyChar"/>
|
||||
<xs:element ref="StringDetect"/>
|
||||
<xs:element ref="WordDetect"/>
|
||||
<xs:element ref="RegExpr"/>
|
||||
<xs:element ref="LineContinue"/>
|
||||
<xs:element ref="HlCStringChar"/>
|
||||
<xs:element ref="RangeDetect"/>
|
||||
<xs:element ref="HlCChar"/>
|
||||
<xs:element ref="IncludeRules"/>
|
||||
<xs:element ref="DetectSpaces"/>
|
||||
<xs:element ref="DetectIdentifier"/>
|
||||
</xs:choice>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="attribute" use="required"/>
|
||||
<xs:attribute name="lineEndContext"/>
|
||||
<xs:attribute name="lineEmptyContext"/>
|
||||
<xs:attribute name="fallthrough">
|
||||
<xs:simpleType>
|
||||
<!-- always true since 5.62 -->
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="1"/>
|
||||
<xs:enumeration value="true"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="fallthroughContext"/>
|
||||
<!-- always ignored -->
|
||||
<xs:attribute name="dynamic" type="xs:boolean"/>
|
||||
<xs:attribute name="noIndentationBasedFolding" type="xs:boolean"/>
|
||||
<!-- since 5.103 -->
|
||||
<xs:attribute name="stopEmptyLineContextSwitchLoop" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Common attributes
|
||||
attribute: The name of the ItemData to be used for matching text
|
||||
context: The name of the context to go to when this rule matches
|
||||
beginRegion: Begin a region of type beginRegion [optional]
|
||||
endRegion: End a region of type endRegion [optional]
|
||||
firstNonSpace: should this rule only match at first non-space char in line?
|
||||
column: should this rule only match at given column in line (column == count of chars in front)
|
||||
-->
|
||||
<xs:attributeGroup name="commonAttributes">
|
||||
<xs:attribute name="attribute"/>
|
||||
<xs:attribute name="context"/>
|
||||
<xs:attribute name="beginRegion"/>
|
||||
<xs:attribute name="endRegion"/>
|
||||
<xs:attribute name="lookAhead" type="xs:boolean"/>
|
||||
<xs:attribute name="firstNonSpace" type="xs:boolean"/>
|
||||
<xs:attribute name="column" type="xs:integer"/>
|
||||
</xs:attributeGroup>
|
||||
<!--
|
||||
Detect members of a keyword list
|
||||
commonAttributes: Common attributes
|
||||
insensitive: Is this list case-insensitive? [boolean, optional, see note]
|
||||
String: Name of the list
|
||||
weakDeliminator: Add weak deliminators [optional, see note]
|
||||
additionalDeliminator: Add deliminators [optional, see note]
|
||||
|
||||
By default, case sensitivity is determined from <keywords casesensitive> in
|
||||
<general> (default=true), but can be overridden per-list with 'insensitive'.
|
||||
|
||||
weakDeliminator and additionalDeliminator are accumulated to those defined in
|
||||
<keywords weakDeliminator additionalDeliminator> in <general>.
|
||||
-->
|
||||
<xs:element name="keyword">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="insensitive" type="xs:boolean"/>
|
||||
<xs:attribute name="String" use="required"/>
|
||||
<xs:attribute name="weakDeliminator"/>
|
||||
<xs:attribute name="additionalDeliminator"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a floating point number (as the regular expression: (\b[0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?).
|
||||
commonAttributes: Common attributes
|
||||
weakDeliminator: Add weak deliminators [optional]
|
||||
additionalDeliminator: Add deliminators [optional]
|
||||
-->
|
||||
<xs:element name="Float">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="weakDeliminator"/>
|
||||
<xs:attribute name="additionalDeliminator"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect an octal number (as the regular expression: \b0[0-7]+).
|
||||
commonAttributes: Common attributes
|
||||
weakDeliminator: Add weak deliminators [optional]
|
||||
additionalDeliminator: Add deliminators [optional]
|
||||
-->
|
||||
<xs:element name="HlCOct">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="weakDeliminator"/>
|
||||
<xs:attribute name="additionalDeliminator"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a hexadecimal number (as a regular expression: \b0[xX][0-9a-fA-F]+).
|
||||
commonAttributes: Common attributes
|
||||
weakDeliminator: Add weak deliminators [optional]
|
||||
additionalDeliminator: Add deliminators [optional]
|
||||
-->
|
||||
<xs:element name="HlCHex">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="weakDeliminator"/>
|
||||
<xs:attribute name="additionalDeliminator"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect C-style character. Characters enclosed in a tick (Example: 'c') which may be a simple character or an escaped character (as a regular expression: '(\\([abefnrtv"'?\\.]|x[0-9a-fA-F]{1,2}|[0-7]{1,3})|[^'])')
|
||||
commonAttributes: Common attributes
|
||||
-->
|
||||
<xs:element name="HlCChar">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect an integer number
|
||||
commonAttributes: Common attributes
|
||||
weakDeliminator: Add weak deliminators [optional]
|
||||
additionalDeliminator: Add deliminators [optional]
|
||||
-->
|
||||
<xs:element name="Int">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="weakDeliminator"/>
|
||||
<xs:attribute name="additionalDeliminator"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a single character
|
||||
commonAttributes: Common attributes
|
||||
char: The character to look for
|
||||
dynamic: Uses 1 .. 9 as placeholders for dynamic arguments (in fact, first char of arg...) [boolean, optional, default=false]
|
||||
-->
|
||||
<xs:element name="DetectChar">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="char" type="char" use="required"/>
|
||||
<xs:attribute name="dynamic" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect two characters
|
||||
commonAttributes: Common attributes
|
||||
char: The first character
|
||||
char1: The second character
|
||||
-->
|
||||
<xs:element name="Detect2Chars">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="char" type="char" use="required"/>
|
||||
<xs:attribute name="char1" type="char" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect one character of a set of specified characters.
|
||||
commonAttributes: Common attributes
|
||||
String: The set of characters
|
||||
-->
|
||||
<xs:element name="AnyChar">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="String" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a string
|
||||
commonAttributes: Common attributes
|
||||
String: The string to look for
|
||||
insensitive: Whether the string is matched case INsensitive. [boolean, optional, default=false]
|
||||
dynamic: Uses %1 .. %9 as placeholders for dynamic arguments [boolean, optional, default=false]
|
||||
-->
|
||||
<xs:element name="StringDetect">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="String" use="required"/>
|
||||
<xs:attribute name="insensitive" type="xs:boolean"/>
|
||||
<xs:attribute name="dynamic" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a word, i.e. a string at word boundaries
|
||||
commonAttributes: Common attributes
|
||||
String: The string to look for
|
||||
insensitive: Whether the string is matched case INsensitive. [boolean, optional, default=false]
|
||||
weakDeliminator: Add weak deliminators [optional]
|
||||
additionalDeliminator: Add deliminators [optional]
|
||||
-->
|
||||
<xs:element name="WordDetect">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="String" use="required"/>
|
||||
<xs:attribute name="insensitive" type="xs:boolean"/>
|
||||
<xs:attribute name="weakDeliminator"/>
|
||||
<xs:attribute name="additionalDeliminator"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a match of a regular expression
|
||||
commonAttributes: Common attributes
|
||||
String: The regular expression pattern
|
||||
insensitive: Whether the text is matched case INsensitive. [boolean, optional, default=false]
|
||||
minimal: Wheather to use minimal matching for wild cards in the pattern [boolean, optional, default=false]
|
||||
dynamic: Uses %1 .. %9 as placeholders for dynamic arguments [boolean, optional, default=false]
|
||||
-->
|
||||
<xs:element name="RegExpr">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="String" use="required"/>
|
||||
<xs:attribute name="insensitive" type="xs:boolean"/>
|
||||
<xs:attribute name="minimal" type="xs:boolean"/>
|
||||
<xs:attribute name="dynamic" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a line continuation
|
||||
commonAttributes: Common attributes
|
||||
char: The char marking the end of line [char, optional, default='\\']
|
||||
-->
|
||||
<xs:element name="LineContinue">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="char" type="char"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a C-style escaped character (as a regular expression: \\([abefnrtv"'?\\.]|x[0-9a-fA-F]{1,2}|[0-7]{1,3})).
|
||||
commonAttributes: Common attributes
|
||||
-->
|
||||
<xs:element name="HlCStringChar">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Detect a string with defined start and end characters.
|
||||
commonAttributes: Common attributes
|
||||
char: The character starting the range
|
||||
char1: The character terminating the range
|
||||
-->
|
||||
<xs:element name="RangeDetect">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
<xs:attribute name="char" type="char" use="required"/>
|
||||
<xs:attribute name="char1" type="char" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Include Rules of another context
|
||||
context: The name of the context to include
|
||||
includeAttrib: If this is true, the host context of the IncludeRules
|
||||
will be given the attribute of the source context
|
||||
-->
|
||||
<xs:element name="IncludeRules">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="context" use="required"/>
|
||||
<xs:attribute name="includeAttrib" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- Detect all following Spaces -->
|
||||
<xs:element name="DetectSpaces">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- Detect an Identifier ( == LETTER(LETTER|NUMBER|_)*) -->
|
||||
<xs:element name="DetectIdentifier">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="commonAttributes"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- List of attributes -->
|
||||
<xs:element name="itemDatas">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="itemData"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Attribute specification
|
||||
name CDATA #REQUIRED The name of this attribute
|
||||
defStyleNum CDATA #REQUIRED The index of the default style to use
|
||||
color CDATA #IMPLIED Color for this style, either a hex triplet, a name or some other format recognized by Qt [optional]
|
||||
selColor CDATA #IMPLIED The color for this style when text is selected [optional]
|
||||
italic CDATA #IMPLIED Whether this attribute should be rendered using an italic typeface [optional, boolean, default=false]
|
||||
bold CDATA #IMPLIED Whether this attribute should be renederd using a bold typeface [optional, boolean, default=false]
|
||||
underline CDATA #IMPLIED Whether this attribute should be underlined [optional, boolean, default=false]
|
||||
strikeOut CDATA #IMPLIED Whether this attribute should be striked out [optional, boolean, default=false]
|
||||
backgroundColor CDATA #IMPLIED The background color for this style [optional]
|
||||
selBackgroundColor CDATA #IMPLIED The background color for this style when text is selected [optional]
|
||||
spellChecking CDATA #IMPLIED Whether this attribute should be spell checked [optional, boolean, default=true]
|
||||
-->
|
||||
<xs:element name="itemData">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" use="required"/>
|
||||
<xs:attribute name="defStyleNum" use="required" type="defStyles"/>
|
||||
<xs:attribute name="color"/>
|
||||
<xs:attribute name="selColor"/>
|
||||
<xs:attribute name="italic" type="xs:boolean"/>
|
||||
<xs:attribute name="bold" type="xs:boolean"/>
|
||||
<xs:attribute name="underline" type="xs:boolean"/>
|
||||
<xs:attribute name="strikeOut" type="xs:boolean"/>
|
||||
<xs:attribute name="backgroundColor"/>
|
||||
<xs:attribute name="selBackgroundColor"/>
|
||||
<xs:attribute name="spellChecking" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- Spellchecking specification -->
|
||||
<xs:element name="spellchecking">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" ref="encodings"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- List of character encodings -->
|
||||
<xs:element name="encodings">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="encoding"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--
|
||||
Encoding specification
|
||||
sequence CDATA #REQUIRED Character sequence of the encoding; must not contain new-line characters, i.e. \n or \r
|
||||
character CDATA #IMPLIED Encoded character; must be of length 1
|
||||
ignored (%boolean;) #IMPLIED If true, then the encoding sequence is ignored for spellchecking
|
||||
-->
|
||||
<xs:element name="encoding">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="string" use="required"/>
|
||||
<xs:attribute name="char" type="char"/>
|
||||
<xs:attribute name="ignored" type="xs:boolean"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
schemadir=$(dirname "$0")
|
||||
xmllint --noout --schema "$schemadir"/language.xsd "$@"
|
||||
@@ -0,0 +1,7 @@
|
||||
<!DOCTYPE RCC>
|
||||
<RCC version="1.0">
|
||||
<qresource prefix="/org.kde.syntax-highlighting/syntax">
|
||||
<file alias="index.katesyntax">@CMAKE_CURRENT_BINARY_DIR@/index.katesyntax</file>
|
||||
@SYNTAX_DATA_QRC_FILES_STRING@
|
||||
</qresource>
|
||||
</RCC>
|
||||
@@ -0,0 +1,925 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY label "[a-zA-Z_][a-zA-Z_0-9]*"> <!-- so sehen Labels aus -->
|
||||
<!ENTITY varname "(?:[a-z_]\w*|[0-9]*[&])"> <!-- valid character in a variable name -->
|
||||
<!ENTITY pathpart "[^"*=/:<>?\\[\]\|]"> <!-- valid character in a file name -->
|
||||
<!ENTITY tasten "(?:(?:Strg|Alt|Shift)-)?(?:[a-z0-9]|F[1-9]|F1[0-2]|Esc|Bksp|Tab|Enter|Up|Down|Left|Right|PgUp|PgDn|Home|End|Ins|Del)">
|
||||
]>
|
||||
<language name="4DOS BatchToMemory" kateversion="5.0" version="10" section="Scripts" extensions="*.btm" casesensitive="0" indenter="cstyle" author="Stefan Huebner (st0ff@npl.de)" license="LGPL">
|
||||
<!--DONE:
|
||||
- comments are there
|
||||
- substitutions are there
|
||||
- basic variable function handling, distinguishing the function result between numerical and string
|
||||
- variables are there (somehow)
|
||||
- numbers will be found
|
||||
- escape characters are found and highlit
|
||||
- jumps, gosubs and labels
|
||||
- command grouping
|
||||
- conditions
|
||||
- redirection
|
||||
- many different command handlings
|
||||
- iff
|
||||
- echo
|
||||
- text/endtext
|
||||
- set/unset
|
||||
- input/inkey
|
||||
- do
|
||||
- for
|
||||
- switch
|
||||
- internal commands of 4DOS
|
||||
TODO:
|
||||
- if someone finds that PATH-detection makes sense: create it...
|
||||
- whatever doesn't seem to be correctly lit after all the preceeding stuff ...
|
||||
- follow the TODO-Marks
|
||||
-->
|
||||
<highlighting>
|
||||
<list name="HighlightInsideComment">
|
||||
<item>todo</item>
|
||||
<item>attention</item>
|
||||
<item>attn</item>
|
||||
<item>fixme</item>
|
||||
<item>achtung</item>
|
||||
<item>info</item>
|
||||
</list>
|
||||
<list name="IntFunctions">
|
||||
<item>DOSMEM</item> <!-- b|k|m-->
|
||||
<item>EMS</item> <!-- b|k|m-->
|
||||
<item>EXTENDED</item> <!-- b|k|m-->
|
||||
<item>XMS</item> <!-- b|k|m-->
|
||||
<item>CDROM</item> <!--string-->
|
||||
<item>CLUSTSIZE</item> <!--string-->
|
||||
<item>CODEPAGE</item> <!--string-->
|
||||
<item>COM</item> <!-- int-->
|
||||
<item>DEVICE</item> <!--string-->
|
||||
<item>DISKFREE</item> <!--string, b|k|m-->
|
||||
<item>DISKTOTAL</item> <!--string, b|k|m-->
|
||||
<item>DISKUSED</item> <!--string, b|k|m-->
|
||||
<item>DRIVETYPE</item> <!--string-->
|
||||
<item>HDDSIZE</item> <!--string, b|k|m-->
|
||||
<item>LPT</item> <!-- int-->
|
||||
<item>READY</item> <!--string-->
|
||||
<item>REMOTE</item> <!--string-->
|
||||
<item>REMOVABLE</item> <!--string-->
|
||||
<item>ATTRIB</item> <!--string,-n|r|h|s|a|d,p]--><!--ATTENTION : nur mit 2 Parametern wird ein Int returned-->
|
||||
<item>COMPARE</item> <!--string-->
|
||||
<item>FILEAGE</item> <!--string,a|c|w]-->
|
||||
<item>FILECLOSE</item> <!-- int-->
|
||||
<item>FILEOPEN</item> <!--string, r|w|a,b|t]-->
|
||||
<item>FILEREAD</item> <!-- int, int]-->
|
||||
<item>FILEREADB</item> <!-- int, int-->
|
||||
<item>FILES</item> <!--string,-n|r|h|s|a|d]-->
|
||||
<item>FILESEEK</item> <!-- int, int, int-->
|
||||
<item>FILESEEKL</item> <!-- int, int-->
|
||||
<item>FILESIZE</item> <!--string,char,char]]-->
|
||||
<item>FILEWRITE</item> <!-- int,string-->
|
||||
<item>FILEWRITEB</item> <!-- int, int,string-->
|
||||
<item>FINDCLOSE</item> <!--string-->
|
||||
<item>LINES</item> <!--string-->
|
||||
<item>ASCII</item> <!-- char-->
|
||||
<item>COUNT</item> <!-- char,string-->
|
||||
<item>FIELDS</item> <!--"string",]string-->
|
||||
<item>INDEX</item> <!--string,string,int]-->
|
||||
<item>ISALNUM</item> <!--string-->
|
||||
<item>ISALPHA</item> <!--string-->
|
||||
<item>ISASCII</item> <!--string-->
|
||||
<item>ISCNTRL</item> <!--string-->
|
||||
<item>ISDIGIT</item> <!--string-->
|
||||
<item>ISLOWER</item> <!--string-->
|
||||
<item>ISPRINT</item> <!--string-->
|
||||
<item>ISPUNCT</item> <!--string-->
|
||||
<item>ISSPACE</item> <!--string-->
|
||||
<item>ISUPPER</item> <!--string-->
|
||||
<item>ISXDIGIT</item> <!--string-->
|
||||
<item>LEN</item> <!--string-->
|
||||
<item>SIMILAR</item> <!--string,string-->
|
||||
<item>WILD</item> <!--string,string-->
|
||||
<item>WORDS</item> <!--"string",]string-->
|
||||
<item>ABS</item> <!-- float-->
|
||||
<item>AVERAGE</item> <!-- float,float,float...]]]-->
|
||||
<item>CEILING</item> <!-- float-->
|
||||
<item>CONVERT</item> <!-- int, int, int-->
|
||||
<item>DEC</item> <!--expression-->
|
||||
<item>DECIMAL</item> <!-- float-->
|
||||
<item>DIGITS</item> <!--string-->
|
||||
<item>EVAL</item> <!--expression-->
|
||||
<item>FLOOR</item> <!-- float-->
|
||||
<item>INC</item> <!--expression-->
|
||||
<item>INT</item> <!-- float-->
|
||||
<item>MAX</item> <!-- float,float,float...]]]-->
|
||||
<item>MIN</item> <!-- float,float,float...]]]-->
|
||||
<item>NUMERIC</item> <!--string-->
|
||||
<item>RANDOM</item> <!-- float,float-->
|
||||
<item>DATE</item> <!-- date-->
|
||||
<item>DAY</item> <!-- date-->
|
||||
<item>DOWI</item> <!-- date-->
|
||||
<item>DOY</item> <!-- date-->
|
||||
<item>ISODOWI</item> <!-- date-->
|
||||
<item>ISOWEEK</item> <!-- date-->
|
||||
<item>ISOWYEAR</item> <!-- date-->
|
||||
<item>MAKEAGE</item> <!-- date,time]-->
|
||||
<item>MONTH</item> <!-- date-->
|
||||
<item>TIME</item> <!-- time-->
|
||||
<item>YEAR</item> <!-- date-->
|
||||
<item>EXEC</item> <!--expression-->
|
||||
<item>INIWRITE</item> <!--string,string,string,string-->
|
||||
</list>
|
||||
<list name="StringFunctions">
|
||||
<item>DDCSTR</item> <!-- int-->
|
||||
<item>MASTER</item> <!--string-->
|
||||
<item>READSCR</item> <!-- int, int, int-->
|
||||
<item>SMBSTR</item> <!-- int, int-->
|
||||
<item>CWD</item> <!--string-->
|
||||
<item>CWDS</item> <!--string-->
|
||||
<item>FSTYPE</item> <!--string-->
|
||||
<item>LABEL</item> <!--string-->
|
||||
<item>SERIAL</item> <!--string-->
|
||||
<item>ATTRIB</item> <!--string--><!--ATTENTION : nur mit 1 Parameter wird ein String returned-->
|
||||
<item>FILEDATE</item> <!--string,acw],n]]-->
|
||||
<item>FILETIME</item> <!--string,acw],s]]-->
|
||||
<item>FINDFIRST</item> <!--string,-n|r|h|s|a|d]-->
|
||||
<item>FINDNEXT</item> <!--string,-n|r|h|s|a|d]-->
|
||||
<item>LINE</item> <!--string, int-->
|
||||
<item>MD5</item> <!--string-->
|
||||
<item>SEARCH</item> <!--string,string]-->
|
||||
<item>SHA1</item> <!--string-->
|
||||
<item>TRUENAME</item> <!--string-->
|
||||
<item>UNIQUE</item> <!--string-->
|
||||
<item>ALTNAME</item> <!--string-->
|
||||
<item>EXPAND</item> <!--string,-n|r|h|s|a|d]-->
|
||||
<item>EXT</item> <!--string-->
|
||||
<item>FILENAME</item> <!--string-->
|
||||
<item>FULL</item> <!--string-->
|
||||
<item>LFN</item> <!--string-->
|
||||
<item>NAME</item> <!--string-->
|
||||
<item>PATH</item> <!--string-->
|
||||
<item>QUOTE</item> <!--string-->
|
||||
<item>SFN</item> <!--string-->
|
||||
<item>UNQUOTE</item> <!--string-->
|
||||
<item>UNQUOTES</item> <!--string-->
|
||||
<item>ASCII</item> <!--string-->
|
||||
<item>CAPS</item> <!--"string",string-->
|
||||
<item>CHAR</item> <!--space-delimited list of int-->
|
||||
<item>FIELD</item> <!--"string",] int,string-->
|
||||
<item>FORMAT</item> <!--string,string-->
|
||||
<item>INSERT</item> <!-- int,string,string-->
|
||||
<item>INSTR</item> <!-- int, int,string-->
|
||||
<item>LCS</item> <!--string,string-->
|
||||
<item>LEFT</item> <!-- int,string-->
|
||||
<item>LOWER</item> <!--string-->
|
||||
<item>LTRIM</item> <!--string,string-->
|
||||
<item>REPEAT</item> <!-- char, int-->
|
||||
<item>REPLACE</item> <!--string,string,string-->
|
||||
<item>RIGHT</item> <!-- int,string-->
|
||||
<item>RTRIM</item> <!--string,string-->
|
||||
<item>REVERSE</item> <!--string-->
|
||||
<item>STRIP</item> <!--string,string-->
|
||||
<item>SUBST</item> <!-- int,string,string-->
|
||||
<item>SUBSTR</item> <!-- int, int,string-->
|
||||
<item>TRIM</item> <!--string-->
|
||||
<item>UPPER</item> <!--string-->
|
||||
<item>WORD</item> <!--"string",]n,string-->
|
||||
<item>COMMA</item> <!-- float-->
|
||||
<item>AGEDATE</item> <!-- int,format]-->
|
||||
<item>DATECONV</item> <!--string,format]-->
|
||||
<item>DOW</item> <!-- date-->
|
||||
<item>DOWF</item> <!-- date-->
|
||||
<item>MAKEDATE</item> <!-- int-->
|
||||
<item>MAKETIME</item> <!-- int-->
|
||||
<item>MONTHF</item> <!-- date-->
|
||||
<item>ALIAS</item> <!--string-->
|
||||
<item>CLIP</item> <!--string-->
|
||||
<item>CLIPW</item> <!--string-->
|
||||
<item>EXECSTR</item> <!--string-->
|
||||
<item>FUNCTION</item> <!--string-->
|
||||
<item>HISTORY</item> <!-- int, int]-->
|
||||
<item>IF</item> <!--condition,string,string-->
|
||||
<item>INIREAD</item> <!--string,string,string-->
|
||||
<item>SELECT</item> <!--string, int, int, int, int,string-->
|
||||
<item>TIMER</item> <!-- int-->
|
||||
</list>
|
||||
<list name="IfCommand"> <item>if</item> </list>
|
||||
<list name="IffCommand"> <item>iff</item> </list>
|
||||
<list name="TextCommand"> <item>text</item> </list>
|
||||
<list name="InputCommand"> <item>input</item> </list>
|
||||
<list name="InkeyCommand"> <item>inkey</item> </list>
|
||||
<list name="DoCommand"> <item>do</item> </list>
|
||||
<list name="EnddoCommand"> <item>enddo</item> </list>
|
||||
<list name="SkipdoCommand">
|
||||
<item>iterate</item>
|
||||
<item>leave</item>
|
||||
</list>
|
||||
<list name="SwitchCommand"> <item>switch</item> </list>
|
||||
<list name="TestErrorlevel"><item>errorlevel</item></list>
|
||||
<list name="TestStatusVarname">
|
||||
<item>defined</item>
|
||||
<item>isalias</item>
|
||||
<item>isfunction</item>
|
||||
<item>isinternal</item>
|
||||
<item>islabel</item>
|
||||
</list>
|
||||
<list name="SetCommand">
|
||||
<item>set</item>
|
||||
<item>function</item>
|
||||
<item>alias</item>
|
||||
</list>
|
||||
<list name="UnsetCommand">
|
||||
<item>ENDLOCAL</item>
|
||||
<item>UNALIAS</item>
|
||||
<item>UNFUNCTION</item>
|
||||
<item>UNSET</item>
|
||||
</list>
|
||||
<list name="BadCommands">
|
||||
<item>for</item>
|
||||
<item>else</item>
|
||||
<item>elseiff</item>
|
||||
<item>endiff</item>
|
||||
<item>enddo</item>
|
||||
<item>endtext</item>
|
||||
<item>case</item>
|
||||
<item>endswitch</item>
|
||||
<item>default</item>
|
||||
<!-- the following is only valid within a do-loop. But obviously I didn't think about it twice:
|
||||
if inside a do-loop we enter an iff/endiff construct, we switch contexts and the "leave" will
|
||||
not be found by the "insideDo" context. There would need to be a way to create a dynamic list
|
||||
of keywords that can be shorted or expanded by a specific context, so that the above wouldn't
|
||||
happen. -->
|
||||
<!--item> iterate </item>
|
||||
<item> leave </item-->
|
||||
</list>
|
||||
<list name="NeedOnOffCommands">
|
||||
<item>BREAK</item>
|
||||
<item>IDLE</item>
|
||||
<item>LFNFOR</item>
|
||||
<item>LOADBTM</item>
|
||||
<item>SWAPPING</item>
|
||||
<item>TRANSIENT</item>
|
||||
<item>VERIFY</item>
|
||||
</list>
|
||||
<list name="TakeAFileNameCommands">
|
||||
<item>CALL</item>
|
||||
<item>CD</item>
|
||||
<item>CHDIR</item>
|
||||
<item>CDD</item>
|
||||
<item>DIR</item>
|
||||
<item>ERASE</item>
|
||||
<item>DEL</item>
|
||||
<item>DESCRIBE</item>
|
||||
<item>HEAD</item>
|
||||
<item>MD</item>
|
||||
<item>MKDIR</item>
|
||||
<item>RD</item>
|
||||
<item>RMDIR</item>
|
||||
<item>PUSHD</item>
|
||||
<item>REN</item>
|
||||
<item>RENAME</item>
|
||||
<item>TOUCH</item>
|
||||
</list>
|
||||
<list name="simpleNoChecksCommands">
|
||||
<item>BEEP</item>
|
||||
<item>CANCEL</item>
|
||||
<item>DATE</item>
|
||||
<item>FREE</item>
|
||||
<item>KEYBD</item>
|
||||
<item>ELSE</item>
|
||||
<item>PAUSE</item>
|
||||
<item>POPD</item>
|
||||
<item>QUIT</item>
|
||||
<item>SETDOS</item>
|
||||
<item>SHIFT</item>
|
||||
<item>TAIL</item>
|
||||
<item>TEE</item>
|
||||
<item>TIME</item>
|
||||
<item>TIMER</item>
|
||||
<item>TYPE</item>
|
||||
</list>
|
||||
<list name="NeedAnIntegerCommands">
|
||||
<item>CHCP</item>
|
||||
<item>DELAY</item>
|
||||
<item>COUNTRY</item>
|
||||
<item>SETERROR</item>
|
||||
</list>
|
||||
<list name="TakeColorsCommands">
|
||||
<item>CLS</item>
|
||||
<item>COLOR</item>
|
||||
</list>
|
||||
<list name="FilesystemOperationCommands">
|
||||
<item>ATTRIB</item>
|
||||
<item>COPY</item>
|
||||
<item>FFIND</item>
|
||||
<item>MOVE</item>
|
||||
</list>
|
||||
<list name="DrawCommands">
|
||||
<item>DRAWBOX</item>
|
||||
<item>DRAWHLINE</item>
|
||||
<item>DRAWVLINE</item>
|
||||
<item>SCREEN</item>
|
||||
<item>SCRPUT</item>
|
||||
<item>VSCRPUT</item>
|
||||
</list>
|
||||
<list name="NeedsACommandCommands">
|
||||
<item>EXCEPT</item>
|
||||
<item>GLOBAL</item>
|
||||
</list>
|
||||
<list name="NoParametersAtAllCommands">
|
||||
<item>SETLOCAL</item>
|
||||
</list>
|
||||
<list name="OnOff">
|
||||
<item>on</item>
|
||||
<item>off</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="base" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="findComments"/>
|
||||
<IncludeRules context="findCommands"/>
|
||||
<IncludeRules context="findCommandSeparator"/>
|
||||
<IncludeRules context="findStrings"/> <!-- includes "findSubstitution"-->
|
||||
</context>
|
||||
<!--
|
||||
the following contexts are meant to be included in other contexts.
|
||||
-->
|
||||
<!-- find any comments (we were even keen enough to highlight things like TODO/FIXME and so on)-->
|
||||
<context name="findComments" attribute="Normal" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="foundComment" char=":" char1=":" column="0"/>
|
||||
<WordDetect attribute="Comment" context="foundComment" String="rem" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<!-- whereever there should be a command start, the following should match in some way or another -->
|
||||
<context name="findCommands" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- Highlight command groups and start/end corresponding folding region -->
|
||||
<DetectChar attribute="Label" context="CommandGroup" char="(" beginRegion="true"/>
|
||||
<!-- find Labels and jmp/jsr/rts commands -->
|
||||
<IncludeRules context="findSpaghetti"/>
|
||||
<!-- find commands that need special handling-->
|
||||
<!-- TODO: replace single-item keyword lists with WordDetect as soon as WordDetect works properly again-->
|
||||
<keyword attribute="Keyword" context="conditionLeft" String="IfCommand"/>
|
||||
<keyword attribute="Keyword" context="cmdIff" String="IffCommand"/>
|
||||
<!-- find all "echo"-variations -->
|
||||
<RegExpr attribute="Keyword" String="[@]?echo\s+(?:on|off)(?=\s*($|\%\+|\)|\]))" insensitive="true"/>
|
||||
<RegExpr attribute="Keyword" context="cmdEcho" String="\becho[s]?(?:err)?[\.]?" insensitive="true"/>
|
||||
<!-- special treatment for Text and EndText -->
|
||||
<keyword attribute="Keyword" context="cmdText" String="TextCommand" insensitive="true" beginRegion="true"/>
|
||||
<!-- Set und Unset-Befehle -->
|
||||
<keyword attribute="Keyword" context="cmdSet" String="SetCommand"/>
|
||||
<keyword attribute="Keyword" context="cmdUnset" String="UnsetCommand"/>
|
||||
<!-- inkey/input -->
|
||||
<keyword attribute="Keyword" context="cmdInput" String="InputCommand"/>
|
||||
<keyword attribute="Keyword" context="cmdInkey" String="InkeyCommand"/>
|
||||
<!-- do loops -->
|
||||
<keyword attribute="Keyword" context="cmdDo" String="DoCommand" beginRegion="true"/>
|
||||
<!-- switch constructs -->
|
||||
<keyword attribute="Keyword" context="cmdSwitch" String="SwitchCommand" beginRegion="true"/>
|
||||
<!-- all the other internal 4DOS commands (with as little processing, as time permits) -->
|
||||
<keyword attribute="Keyword" context="cmdNeedOnOff" String="NeedOnOffCommands"/>
|
||||
<keyword attribute="Keyword" context="cmdTakeAFileName" String="TakeAFileNameCommands"/>
|
||||
<keyword attribute="Keyword" context="cmdsimpleNoChecks" String="simpleNoChecksCommands"/>
|
||||
<keyword attribute="Keyword" context="cmdNeedAnInteger" String="NeedAnIntegerCommands"/>
|
||||
<keyword attribute="Keyword" context="cmdTakeColors" String="TakeColorsCommands"/>
|
||||
<keyword attribute="Keyword" context="cmdFilesystemOperation" String="FilesystemOperationCommands"/>
|
||||
<keyword attribute="Keyword" context="cmdDraw" String="DrawCommands"/>
|
||||
<keyword attribute="Keyword" context="cmdNeedsACommand" String="NeedsACommandCommands"/>
|
||||
<keyword attribute="Keyword" context="popNeedEndOfCommand" String="NoParametersAtAllCommands"/>
|
||||
<!-- BAD COMMANDS:
|
||||
for :: if someone codes for 4DOS, he shall not use for-loops. The way to go is using do-loops,
|
||||
for-loops were just included into 4DOS to have M$-DOS command.com compatibility
|
||||
any other bad commands: are not available outside of their respective scopes, or it's the same
|
||||
as with "for"
|
||||
-->
|
||||
<keyword attribute="Error" context="Error" String="BadCommands"/>
|
||||
</context>
|
||||
|
||||
<!-- find jumps, labels and subroutine calls -->
|
||||
<context name="findSpaghetti" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr attribute="Label" context="foundLabel" String="^:&label;" beginRegion="true" insensitive="true" column="0"/>
|
||||
<RegExpr attribute="Label" context="foundSpagetti" String="(?:goto|gosub)\s+&label;" insensitive="true"/>
|
||||
<WordDetect attribute="Label" String="return" insensitive="true" endRegion="true"/>
|
||||
</context>
|
||||
|
||||
<!-- find any variable substitution-->
|
||||
<context name="findSubstitution" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar context="substitutionFound" char="%" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<!-- findVariables just finds variable substitutions WITHOUT variable functions!!!-->
|
||||
<context name="findVariables" attribute="Normal" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="VariableBold" context="substitutionIndirect" char="%" char1="["/>
|
||||
<RegExpr attribute="Variable" String="%(?:[a-z_][a-z_0-9]*%?|[0-9]+&?|&|\?+|_\?|#)" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<!-- findNumbers finds Numbers and variableSubstitutions that may well be numbers-->
|
||||
<context name="findNumbers" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr attribute="Number" String="\s*[+-]?\d*[,.]?\d+"/>
|
||||
<Detect2Chars attribute="Function" context="substitutionFindIntFunction" char="%" char1="@"/>
|
||||
<IncludeRules context="findVariables"/>
|
||||
</context>
|
||||
|
||||
<!-- findStrings should skip over Strings, highlighting any substitution inside-->
|
||||
<context name="findStrings" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="Escape" context="foundStringBackQuote" char="`"/>
|
||||
<DetectChar attribute="String" context="foundStringQuote" char="""/>
|
||||
<IncludeRules context="findEscapes"/>
|
||||
<IncludeRules context="findSubstitution"/>
|
||||
<!-- a Number may well be interpreted as a string in 4dos, also -->
|
||||
<RegExpr attribute="Number" String="\s*[+-]?\d*[,.]?\d+"/>
|
||||
<!-- the following highlights ANSI-Escape-Sequences -->
|
||||
<RegExpr attribute="Escape" String="\x1b\[.*[fhlmpsuABCDHJKR]" minimal="true"/>
|
||||
<!--
|
||||
we shall find strings - so why don't we find at least literal words?
|
||||
|
||||
There is one simple answer: if we are inside a context that shall highlight strings,
|
||||
then "findStrings" is included, to find things that evaluate to some kind of string.
|
||||
Normal plaintext strings shall be lit by the context itself.
|
||||
-->
|
||||
</context>
|
||||
|
||||
<!-- highlight escaped characters -->
|
||||
<context name="findEscapes" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr attribute="Escape" context="foundANSIEscape" String="%=e\[(?=.*[fhlmpsuABCDHJKR])" minimal="true"/>
|
||||
<RegExpr attribute="Escape" String="\x18.|%=."/>
|
||||
</context>
|
||||
|
||||
<!-- highlight the command seperator without changing contexts -->
|
||||
<context name="findCommandSeparator" attribute="Normal" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Keyword" char="%" char1="+"/>
|
||||
</context>
|
||||
|
||||
<!-- highlight the command seperator and pop a context -->
|
||||
<context name="popNeedEndOfCommand" attribute="Error" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Keyword" context="#pop" char="%" char1="+"/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<!-- Entry Point for finding conditions -->
|
||||
<context name="findCondition" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr attribute="Error" context="conditionLeft" String="(?:not\s+)*(?:(?:(?:dir)?exist|isdir|defined|is(?:alias|function|label|internal)|errorlevel)|(?:.+(?:(?:\s*(==|!=)\s*)|(?:\s+(?:eq|ne|gt|ge|lt|le|eqc)\s+)).))" lookAhead="true" insensitive="true" minimal="true"/>
|
||||
</context>
|
||||
|
||||
<!-- find redirections -->
|
||||
<context name="findRedirection" attribute="Error" lineEndContext="#stay">
|
||||
<DetectChar attribute="Keyword" context="RedirectionInput1st" char="<"/>
|
||||
<RegExpr attribute="Keyword" context="RedirectionOutput1st" String="[>]{1,2}[&]?[>]?"/>
|
||||
</context>
|
||||
|
||||
<!-- find any Option -->
|
||||
<context name="findOption" attribute="Option" lineEndContext="#stay">
|
||||
<DetectChar attribute="Option" context="Option" char="/"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!--
|
||||
Here we start with functional contexts. These actually do something more than just find something and should not be sourced directly
|
||||
-->
|
||||
<context name="CommandGroup" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="Label" context="#pop" char=")" endRegion="true"/>
|
||||
<IncludeRules context="base"/>
|
||||
</context>
|
||||
|
||||
<!-- Highlight ANSI Escap-Sequences - the "%=e[" are already eaten up -->
|
||||
<context name="foundANSIEscape" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="findStrings"/>
|
||||
<AnyChar attribute="Escape" context="#pop" String="fhlmpsuABCDHJKR"/>
|
||||
</context>
|
||||
|
||||
<!-- if any substitution was found, we get here ... -->
|
||||
<context name="substitutionFound" attribute="Error" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Function" context="#pop!substitutionFindFunction" char="%" char1="@"/>
|
||||
<Detect2Chars attribute="VariableBold" context="#pop!substitutionIndirect" char="%" char1="["/>
|
||||
<RegExpr attribute="Variable" context="#pop" String="%(?:[a-z_][a-z_0-9]*%?|[0-9]+&?|&|\?+|_\?|#)" insensitive="true"/>
|
||||
<!-- in @EVAL there is the modulo-operator %% - we'll have to filter it out!
|
||||
TODO: give eval a special handler and remove the following rule. -->
|
||||
<Detect2Chars attribute="Operator" context="#pop" char="%" char1="%"/>
|
||||
</context>
|
||||
|
||||
<context name="substitutionFindFunction" attribute="Error" lineEndContext="#pop">
|
||||
<!-- TODO: add special function handlers for
|
||||
execstr
|
||||
if
|
||||
-->
|
||||
<keyword attribute="Function" context="#pop!substitutionFunctionFound" String="StringFunctions"/>
|
||||
<IncludeRules context="substitutionFindIntFunction"/>
|
||||
</context>
|
||||
|
||||
<context name="substitutionFindIntFunction" attribute="Error" lineEndContext="#pop">
|
||||
<!-- TODO: add special function handlers for
|
||||
eval
|
||||
-->
|
||||
<keyword attribute="Function" context="#pop!substitutionFunctionFound" String="IntFunctions"/>
|
||||
<RegExpr attribute="Function" context="#pop!substitutionFunctionFound" String="&label;(?=\[)" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<!-- Variable Functions - the Masterpower of 4DOS -> we'll make this more complex later on!-->
|
||||
<context name="substitutionFunctionFound" attribute="Error" lineEndContext="Error">
|
||||
<DetectChar attribute="Function" context="#pop!findFunctionParameters" beginRegion="true" char="["/>
|
||||
</context>
|
||||
|
||||
<context name="findFunctionParameters" attribute="String" lineEndContext="Error">
|
||||
<DetectChar attribute="Function" char=","/>
|
||||
<DetectChar attribute="Function" context="#pop" endRegion="true" char="]"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<!-- indirect Substitutions - they need to find their ending braces-->
|
||||
<context name="substitutionIndirect" attribute="Variable" lineEndContext="Error">
|
||||
<DetectChar attribute="VariableBold" context="#pop" endRegion="true" char="]"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<!-- Strings within quotes -->
|
||||
<context name="foundStringBackQuote" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="Escape" context="#pop" char="`"/>
|
||||
</context>
|
||||
|
||||
<context name="foundStringQuote" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<!-- stuff inside comments ... (a comment always runs until EOL) -->
|
||||
<context name="foundComment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments"/>
|
||||
<keyword attribute="Alert" String="HighlightInsideComment"/>
|
||||
</context>
|
||||
|
||||
<!-- Label definitions including parameter definitions for Gosub-->
|
||||
<context name="foundLabel" attribute="Error" lineEndContext="#pop">
|
||||
<!-- Wir suchen nach Parameterdefinitionen für GOSUBs, alles andere sind Fehler! -->
|
||||
<DetectChar attribute="Label" context="#pop!foundLabelParameters" char="["/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="foundLabelParameters" attribute="Error" lineEndContext="#pop">
|
||||
<DetectIdentifier attribute="Variable" context="#stay"/>
|
||||
<DetectChar attribute="Label" context="#pop" char="]"/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<!-- highlight gosubs and gotos with additional parameters (only valid with gosub, actually)-->
|
||||
<context name="foundSpagetti" attribute="Normal" lineEndContext="#pop">
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<!-- Rules that highlight conditions (include the entry point "findCondition" to start this as a context that pops behind the condition(s))-->
|
||||
<context name="conditionLeft" attribute="Normal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!conditionLeftStandard">
|
||||
<RegExpr attribute="Normal" context="conditionNot" String="\bnot\b" lookAhead="true" insensitive="true"/>
|
||||
<keyword attribute="Label" context="#pop!conditionVarname" String="TestStatusVarname"/>
|
||||
<!-- the end of a filename comes with any non-quoted space - so we need to eat up the first space after exist etc.-->
|
||||
<RegExpr attribute="Label" context="#pop!conditionFileTest" String="(?:(?:dir)?exist|isdir)\s+" insensitive="true"/>
|
||||
<keyword attribute="Label" context="#pop!conditionErrorlevel" String="TestErrorlevel"/>
|
||||
<DetectSpaces/>
|
||||
</context>
|
||||
|
||||
<context name="conditionNot" attribute="Error" lineEndContext="#pop#pop">
|
||||
<!-- the context itself highlights everything as Error - just this rule finds the last not -->
|
||||
<RegExpr attribute="Alert" context="#pop" String="\bnot\b(?!\s*not\b)" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context name="conditionVarname" attribute="Normal" lineEndContext="#pop">
|
||||
<!-- basic variable name check just finds an identifier -->
|
||||
<DetectIdentifier attribute="Variable" context="#pop!conditionEnd"/>
|
||||
<!-- TODO: further checking, as a varname can also be calculated -->
|
||||
</context>
|
||||
|
||||
<context name="conditionFileTest" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="findStrings"/>
|
||||
<DetectSpaces context="#pop!conditionEnd"/>
|
||||
</context>
|
||||
|
||||
<context name="conditionErrorlevel" attribute="Normal" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<RegExpr attribute="Operator" String="==|!=|eq|ne|gt|ge|lt|le" insensitive="true"/>
|
||||
<RegExpr attribute="Number" context="#pop!conditionEnd" String="\s*[+-]?\d*[,.]?\d+"/>
|
||||
<!-- TODO: actually errorlevel-test can also take calculated numbers or int variables to test agains - but would we want to duplicate a lot of the functionality above again?-->
|
||||
</context>
|
||||
|
||||
<context name="conditionEnd" attribute="Normal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Operator" context="#pop!conditionLeft" String="\.(?:and|x?or)\." insensitive="true"/>
|
||||
<!--DetectSpaces/-->
|
||||
</context>
|
||||
|
||||
<context name="conditionLeftStandard" attribute="Normal" lineEndContext="#pop">
|
||||
<!--DetectSpaces/-->
|
||||
<RegExpr attribute="Operator" context="#pop!conditionLeftEval" String="\s*(?:==|!=|eq|ne|gt|ge|lt|le)" lookAhead="true" insensitive="true"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<context name="conditionLeftEval" attribute="Normal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!conditionRight">
|
||||
<DetectSpaces/>
|
||||
<RegExpr attribute="Operator" String="==|!=|eq|ne|gt|ge|lt|le|eqc" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context name="conditionRight" attribute="Normal" lineEndContext="#pop">
|
||||
<IncludeRules context="findStrings"/>
|
||||
<DetectSpaces context="#pop!conditionEnd"/>
|
||||
</context>
|
||||
|
||||
<!-- Handle Iff correctly: condition, then, wait for possible else/handle elseiff find endiff-->
|
||||
<context name="cmdIff" attribute="Normal" lineEndContext="#pop">
|
||||
<IncludeRules context="findCondition"/>
|
||||
<DetectSpaces/>
|
||||
<!-- TODO: replace with WordDetect as soon as WordDetect works right-->
|
||||
<RegExpr attribute="Keyword" context="#pop!cmdIffThen" beginRegion="true" String="\bthen\b\s*(?:$|%\+)" insensitive="true"/>
|
||||
<!-- should the above regex not match, there is an error... -->
|
||||
<StringDetect attribute="Keyword" context="Error" String="then" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdIffThen" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- TODO: replace with WordDetect as soon as WordDetect works right-->
|
||||
<RegExpr attribute="Keyword" context="popNeedEndOfCommand" String="\belse\b" insensitive="true"/>
|
||||
<RegExpr attribute="Keyword" context="cmdElseiff" String="\belseiff\b" insensitive="true"/>
|
||||
<RegExpr attribute="Keyword" context="#pop!popNeedEndOfCommand" endRegion="true" String="\bendiff\b" insensitive="true"/>
|
||||
<IncludeRules context="base"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdElseiff" attribute="Normal" lineEndContext="#pop">
|
||||
<IncludeRules context="findCondition"/>
|
||||
<DetectSpaces/>
|
||||
<!-- TODO: replace with WordDetect as soon as WordDetect works right-->
|
||||
<RegExpr attribute="Keyword" context="#pop" String="\bthen\b\s*(?:$|%\+)" insensitive="true"/>
|
||||
<!-- should the above regex not match, there is an error... -->
|
||||
<StringDetect attribute="Keyword" context="Error" String="then" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<!-- echo -->
|
||||
<context name="cmdEcho" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="findStrings"/>
|
||||
<IncludeRules context="findRedirection"/>
|
||||
<RegExpr attribute="Normal" context="#pop" String="\s*(?:$|\%\+|\)|\])" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<!-- Redirection: kann ja auch mehrfach auftreten -->
|
||||
<context name="Redirection" attribute="String" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Normal" context="#stay"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
</context>
|
||||
|
||||
<context name="RedirectionOutput1st" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="Redirection"/>
|
||||
<DetectChar attribute="Redirection" context="#pop!Redirection" char="<"/>
|
||||
</context>
|
||||
|
||||
<context name="RedirectionInput1st" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="Redirection"/>
|
||||
<RegExpr attribute="Redirection" context="#pop!Redirection" String="[>]{1,2}[&]?[>]?"/>
|
||||
</context>
|
||||
|
||||
<!-- special treatment of text and endtext -->
|
||||
<context name="cmdText" attribute="Error" lineEndContext="#pop!cmdEndText">
|
||||
<DetectSpaces attribute="Normal" context="#stay"/>
|
||||
<RegExpr attribute="Keyword" context="Redirection" String="[>]{1,2}"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdEndText" attribute="String" lineEndContext="#stay">
|
||||
<RegExpr attribute="Keyword" context="#pop" String="^\s*endtext\s*$" insensitive="true" column="0"/>
|
||||
<!-- As we are pretty 31337, we also highlight ANSI-Escapes in Textblocks.
|
||||
We're just not 1337 enough to also provide a syntactic checking for
|
||||
those sequences...-->
|
||||
<RegExpr attribute="Escape" String="\x1b\[.*[fhlmpsuABCDHJKR]" minimal="true"/>
|
||||
</context>
|
||||
|
||||
<!-- Set/Unset commands -->
|
||||
<context name="cmdUnset" attribute="Normal" lineEndContext="#pop">
|
||||
<IncludeRules context="findOption"/>
|
||||
<DetectIdentifier attribute="Variable" context="#stay"/>
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdSet" attribute="Normal" lineEndContext="#pop">
|
||||
<DetectChar attribute="Keyword" context="#pop" char="="/>
|
||||
<IncludeRules context="cmdUnset"/>
|
||||
</context>
|
||||
|
||||
<!-- Highlight an Option, #pop on next space ...-->
|
||||
<context name="Option" attribute="Option" lineEndContext="#pop">
|
||||
<IncludeRules context="findStrings"/>
|
||||
<DetectSpaces attribute="Normal" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- input und inkey - testing allowed Options ... -->
|
||||
<context name="cmdInput" attribute="String" lineEndContext="#pop"
|
||||
fallthroughContext="#pop!inputMessage" fallthrough="true">
|
||||
<IncludeRules context="input"/>
|
||||
<RegExpr attribute="Option" String="/(?:[en]|l[0-9]+)\s" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdInkey" attribute="String" lineEndContext="#pop"
|
||||
fallthroughContext="#pop!inputMessage" fallthrough="true">
|
||||
<StringDetect attribute="Option" context="inputKeysDP" String="/k:" insensitive="true"/>
|
||||
<StringDetect attribute="Option" context="inputKeysAZ" String="/k"" insensitive="true"/>
|
||||
<StringDetect attribute="Error" String="/k" insensitive="true"/>
|
||||
<StringDetect attribute="Option" String="/m" insensitive="true"/>
|
||||
<IncludeRules context="input"/>
|
||||
</context>
|
||||
|
||||
<context name="input" attribute="Error" lineEndContext="#stay">
|
||||
<RegExpr attribute="Option" String="/(?:[cdpx]|[w][0-9]+)\s" insensitive="true"/>
|
||||
<DetectSpaces attribute="Normal" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context name="inputKeysDP" attribute="Error" lineEndContext="#pop#pop">
|
||||
<DetectChar attribute="String" context="inputKeyDesc" char="["/>
|
||||
<DetectSpaces attribute="Normal" context="#pop"/>
|
||||
<RegExpr attribute="Function" String="\S"/>
|
||||
</context>
|
||||
|
||||
<context name="inputKeysAZ" attribute="Error" lineEndContext="#pop#pop">
|
||||
<DetectChar attribute="String" context="inputKeyDesc" char="["/>
|
||||
<DetectChar attribute="Option" context="#pop" char="""/>
|
||||
<RegExpr attribute="Function" String="\S"/>
|
||||
</context>
|
||||
|
||||
<context name="inputKeyDesc" attribute="Error" lineEndContext="#pop#pop#pop">
|
||||
<RegExpr attribute="Label" context="#pop!inputKeyDesc2" String="&tasten;"/>
|
||||
</context>
|
||||
|
||||
<context name="inputKeyDesc2" attribute="Error" lineEndContext="#pop#pop#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="]"/>
|
||||
</context>
|
||||
|
||||
<context name="inputMessage" attribute="String" lineEndContext="#pop">
|
||||
<RegExpr attribute="Variable" context="#pop!popNeedEndOfCommand" String="%%[a-z_][a-z0-9_]*" insensitive="true"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<!-- special treatment of DO -->
|
||||
<context name="cmdDo" attribute="Error" lineEndContext="Error">
|
||||
<!-- do n | forever-->
|
||||
<RegExpr attribute="Label" context="#pop!insideDo" String="\s*forever(?=\s*$)" insensitive="true"/>
|
||||
<RegExpr attribute="Variable" context="#pop!fixedDo" String="\s*[%0-9]" lookAhead="true"/>
|
||||
<!-- WHILE | UNTIL -->
|
||||
<RegExpr attribute="Label" context="#pop!conditionalDo" String="\s*(?:while|until)" insensitive="true"/>
|
||||
<!-- varname = start TO end [BY n] | varname in blubberkram -->
|
||||
<RegExpr attribute="Variable" context="#pop!countedDo" String="\s*&varname;" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context name="fixedDo" attribute="Error" lineEndContext="#pop!insideDo">
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
<IncludeRules context="findNumbers"/>
|
||||
</context>
|
||||
|
||||
<context name="countedDo" attribute="Error" lineEndContext="Error">
|
||||
<RegExpr attribute="Keyword" context="#pop!countedDoIn" String="\bin\b" insensitive="true"/>
|
||||
<DetectChar attribute="Keyword" context="#pop!countedDoStart" char="="/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="countedDoIn" attribute="String" lineEndContext="#pop!insideDo">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="findOption"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<context name="countedDoStart" attribute="Error" lineEndContext="Error">
|
||||
<RegExpr attribute="Keyword" context="#pop!countedDoTo" String="\bto\b" insensitive="true"/>
|
||||
<IncludeRules context="findNumbers"/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="countedDoTo" attribute="Error" lineEndContext="#pop!insideDo">
|
||||
<IncludeRules context="findNumbers"/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
<RegExpr attribute="Keyword" context="#pop!countedDoBy" String="\bby\b" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context name="countedDoBy" attribute="Error" lineEndContext="#pop!insideDo">
|
||||
<IncludeRules context="findNumbers"/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="conditionalDo" attribute="Error" lineEndContext="#pop!insideDo">
|
||||
<IncludeRules context="findCondition"/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="insideDo" attribute="Normal" lineEndContext="#stay">
|
||||
<keyword attribute="Keyword" String="SkipdoCommand"/>
|
||||
<keyword attribute="Keyword" endRegion="true" context="#pop!popNeedEndOfCommand" String="EnddoCommand"/>
|
||||
<IncludeRules context="base"/>
|
||||
</context>
|
||||
|
||||
<!-- special treatment of switch statements -->
|
||||
<context name="cmdSwitch" attribute="Normal" lineEndContext="#pop!insideSwitch">
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<context name="insideSwitch" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr attribute="Keyword" context="#pop!switchDefault" String="\s*default\s*$" insensitive="true"/>
|
||||
<IncludeRules context="switchDefault"/>
|
||||
</context>
|
||||
<!-- "Default" may be used only once, that's why we change contexts when it was found -->
|
||||
<context name="switchDefault" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr attribute="Keyword" context="switchCase" String="\bcase\b" insensitive="true"/>
|
||||
<RegExpr attribute="Keyword" context="#pop!popNeedEndOfCommand" String="\bendswitch\b" insensitive="true" endRegion="true"/>
|
||||
<IncludeRules context="base"/>
|
||||
</context>
|
||||
|
||||
<context name="switchCase" attribute="String" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<StringDetect attribute="Operator" insensitive="true" String=".or."/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
</context>
|
||||
|
||||
<!-- internal commands of the 4DOS interpreter (TODO: make it even better, like integrated syntax checking) -->
|
||||
<context name="cmdNeedOnOff" attribute="Error" lineEndContext="#pop">
|
||||
<keyword attribute="String" context="#pop!popNeedEndOfCommand" String="OnOff"/>
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdNeedAnInteger" attribute="Error" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Normal"/>
|
||||
<IncludeRules context="findOption"/>
|
||||
<IncludeRules context="findNumbers"/>
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdNeedsACommand" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="findOption"/>
|
||||
<IncludeRules context="base"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdsimpleNoChecks" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="findOption"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdTakeAFileName" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="findOption"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdTakeColors" attribute="String" lineEndContext="#pop">
|
||||
<RegExpr attribute="Operator" context="#pop!ColorHaveBrightFG" String="\bbri(?:ght)?\b" insensitive="true"/>
|
||||
<RegExpr attribute="Operator" context="#pop!ColorHaveBlinkFG" String="\bbli(?:nk)?\b" insensitive="true"/>
|
||||
<IncludeRules context="ColorHaveBlinkFG"/>
|
||||
</context>
|
||||
|
||||
<context name="ColorHaveBrightFG" attribute="String" lineEndContext="Error">
|
||||
<RegExpr attribute="Operator" context="#pop!ColorHaveBlinkFG" String="\bbli(?:nk)?\b" insensitive="true"/>
|
||||
<IncludeRules context="ColorHaveBlinkFG"/>
|
||||
</context>
|
||||
|
||||
<context name="ColorHaveBlinkFG" attribute="String" lineEndContext="Error">
|
||||
<RegExpr attribute="Option" context="#pop!ColorHaveFG" insensitive="true" String="\b(?:Bla(?:ck)?|Blue?|Gre(?:en)?|Red|Mag(?:enta)?|Cyan?|Yel(?:low)?|Whi(?:te)?)\b"/>
|
||||
<DetectSpaces/>
|
||||
</context>
|
||||
|
||||
<context name="ColorHaveFG" attribute="String" lineEndContext="Error">
|
||||
<RegExpr attribute="Keyword" context="#pop!ColorBG" insensitive="true" String="\s+on\s+"/>
|
||||
</context>
|
||||
|
||||
<context name="ColorBG" attribute="String" lineEndContext="Error">
|
||||
<RegExpr attribute="Operator" insensitive="true" String="\bbri(?:ght)?\b"/>
|
||||
<RegExpr attribute="Option" context="#pop!ColorHaveBG" insensitive="true" String="\b(?:Bla(?:ck)?|Blue?|Gre(?:en)?|Red|Mag(?:enta)?|Cyan?|Yel(?:low)?|Whi(?:te)?)\b"/>
|
||||
</context>
|
||||
|
||||
<context name="ColorHaveBG" attribute="String" lineEndContext="#pop">
|
||||
<RegExpr attribute="Operator" context="#pop!ColorNeedBordercol" insensitive="true" String="\bBOR(?:der)?\b"/>
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
</context>
|
||||
|
||||
<context name="ColorNeedBordercol" attribute="String" lineEndContext="Error">
|
||||
<RegExpr attribute="Option" context="#pop!popNeedEndOfCommand" insensitive="true" String="\s*(?:Bla(?:ck)?|Blue?|Gre(?:en)?|Red|Mag(?:enta)?|Cyan?|Yel(?:low)?|Whi(?:te)?)\b"/>
|
||||
</context>
|
||||
|
||||
<context name="cmdDraw" attribute="String" lineEndContext="#pop">
|
||||
<!-- ToDo: check if we'll have to split this into multiple contexts, add the highlighting for drawing commands -->
|
||||
</context>
|
||||
|
||||
<context name="cmdFilesystemOperation" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="findOption"/>
|
||||
<IncludeRules context="findStrings"/>
|
||||
<IncludeRules context="popNeedEndOfCommand"/>
|
||||
</context>
|
||||
|
||||
<context name="Error" attribute="Error" lineEndContext="#stay">
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Number" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Option" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Label" defStyleNum="dsOthers"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction"/>
|
||||
<itemData name="Redirection" defStyleNum="dsKeyword"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Escape" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Variable" defStyleNum="dsVariable"/>
|
||||
<itemData name="VariableBold" defStyleNum="dsVariable" bold="true"/>
|
||||
<itemData name="Alert" defStyleNum="dsAlert"/>
|
||||
<itemData name="Error" defStyleNum="dsError"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="rem "/>
|
||||
</comments>
|
||||
<keywords casesensitive="0" additionalDeliminator="@"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,282 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="ABAP" version="7" kateversion="5.0" section="Sources" extensions="*.abap;*.ABAP" mimetype="text/x-abap-src" priority="5" author="Marcos Antonio Alvarez Costales (busgosin@hotmail.com)" license="GPL">
|
||||
<highlighting>
|
||||
|
||||
<list name="keywords">
|
||||
<!-- compiler directives and structures -->
|
||||
<item>ADD</item>
|
||||
<item>ADJACENT</item>
|
||||
<item>ALL</item>
|
||||
<item>AND</item>
|
||||
<item>APPEND</item>
|
||||
<item>APPENDING</item>
|
||||
<item>AS</item>
|
||||
<item>ASCENDING</item>
|
||||
<item>AT</item>
|
||||
<item>BEGIN</item>
|
||||
<item>BETWEEN</item>
|
||||
<item>BINARY</item>
|
||||
<item>BLOCK</item>
|
||||
<item>BY</item>
|
||||
<item>CASE</item>
|
||||
<item>CENTERED</item>
|
||||
<item>CHAIN</item>
|
||||
<item>CHANGING</item>
|
||||
<item>CHECK</item>
|
||||
<item>CHECKBOX</item>
|
||||
<item>CLEAR</item>
|
||||
<item>COL_BACKGROUND</item>
|
||||
<item>COL_HEADING</item>
|
||||
<item>COL_NORMAL</item>
|
||||
<item>COL_TOTAL</item>
|
||||
<item>COLOR</item>
|
||||
<item>COMMENT</item>
|
||||
<item>COMMIT</item>
|
||||
<item>COMPARING</item>
|
||||
<item>COMPUTE</item>
|
||||
<item>CONCATENATE</item>
|
||||
<item>CONDENSE</item>
|
||||
<item>CONSTANTS</item>
|
||||
<item>CONTINUE</item>
|
||||
<item>CONTROLS</item>
|
||||
<item>COUNTRY</item>
|
||||
<item>DATA</item>
|
||||
<item>DECIMALS</item>
|
||||
<item>DEFAULT</item>
|
||||
<item>DELETE</item>
|
||||
<item>DELETING</item>
|
||||
<item>DESCENDING</item>
|
||||
<item>DESCRIBE</item>
|
||||
<item>DO</item>
|
||||
<item>DUPLICATES</item>
|
||||
<item>EDIT</item>
|
||||
<item>ELSE</item>
|
||||
<item>ELSEIF</item>
|
||||
<item>END</item>
|
||||
<item>ENDCASE</item>
|
||||
<item>ENDCHAIN</item>
|
||||
<item>ENDDO</item>
|
||||
<item>ENDIF</item>
|
||||
<item>ENDLOOP</item>
|
||||
<item>ENDMODULE</item>
|
||||
<item>ENDSELECT</item>
|
||||
<item>ENDWHILE</item>
|
||||
<item>ENTRIES</item>
|
||||
<item>EQ</item>
|
||||
<item>EXCEPTIONS</item>
|
||||
<item>EXCLUDING</item>
|
||||
<item>EXIT</item>
|
||||
<item>EXIT-COMMAND</item>
|
||||
<item>EXPORT</item>
|
||||
<item>EXPORTING</item>
|
||||
<item>FIELD</item>
|
||||
<item>FIRST</item>
|
||||
<item>FOR</item>
|
||||
<item>FORMAT</item>
|
||||
<item>FRAME</item>
|
||||
<item>FREE</item>
|
||||
<item>FROM</item>
|
||||
<item>GE</item>
|
||||
<item>GROUP</item>
|
||||
<item>GT</item>
|
||||
<item>HEADER</item>
|
||||
<item>HEADING</item>
|
||||
<item>HIDE</item>
|
||||
<item>HOTSPOT</item>
|
||||
<item>ID</item>
|
||||
<item>IF</item>
|
||||
<item>IMPORT</item>
|
||||
<item>IMPORTING</item>
|
||||
<item>IN</item>
|
||||
<item>INDEX</item>
|
||||
<item>INITIAL</item>
|
||||
<item>INNER</item>
|
||||
<item>INPUT</item>
|
||||
<item>INSERT</item>
|
||||
<item>INTENSIFIED</item>
|
||||
<item>INTERVALS</item>
|
||||
<item>INTO</item>
|
||||
<item>IS</item>
|
||||
<item>JOIN</item>
|
||||
<item>KEY</item>
|
||||
<item>LE</item>
|
||||
<item>LEAVE</item>
|
||||
<item>LEFT</item>
|
||||
<item>LEFT-JUSTIFIED</item>
|
||||
<item>LIKE</item>
|
||||
<item>LINE</item>
|
||||
<item>LINE-COUNT</item>
|
||||
<item>LINES</item>
|
||||
<item>LINES</item>
|
||||
<item>LINE-SIZE</item>
|
||||
<item>LIST-PROCESSING</item>
|
||||
<item>LOOP</item>
|
||||
<item>LT</item>
|
||||
<item>MASK</item>
|
||||
<item>MEMORY</item>
|
||||
<item>MESSAGE</item>
|
||||
<item>MESSAGE-ID</item>
|
||||
<item>MOD</item>
|
||||
<item>MODIFY</item>
|
||||
<item>MODULE</item>
|
||||
<item>MOVE</item>
|
||||
<item>MOVE-CORRESPONDING</item>
|
||||
<item>NE</item>
|
||||
<item>NEW-LINE</item>
|
||||
<item>NEW-PAGE</item>
|
||||
<item>NO</item>
|
||||
<item>NO-EXTENSION</item>
|
||||
<item>NO-GAP</item>
|
||||
<item>NO-SCROLLING</item>
|
||||
<item>NOT</item>
|
||||
<item>NO-ZERO</item>
|
||||
<item>NUMBER</item>
|
||||
<item>OBLIGATORY</item>
|
||||
<item>OCCURS</item>
|
||||
<item>OF</item>
|
||||
<item>OFF</item>
|
||||
<item>ON</item>
|
||||
<item>OR</item>
|
||||
<item>OTHERS</item>
|
||||
<item>OUTPUT</item>
|
||||
<item>PAGE</item>
|
||||
<item>PARAMETER</item>
|
||||
<item>PARAMETERS</item>
|
||||
<item>PERFORM</item>
|
||||
<item>PF-STATUS</item>
|
||||
<item>POS_HIGH</item>
|
||||
<item>POS_LOW</item>
|
||||
<item>POSITION</item>
|
||||
<item>PROGRAM</item>
|
||||
<item>RADIOBUTTON</item>
|
||||
<item>RANGES</item>
|
||||
<item>READ</item>
|
||||
<item>REFRESH</item>
|
||||
<item>REPORT</item>
|
||||
<item>RESERVE</item>
|
||||
<item>RESET</item>
|
||||
<item>RIGHT</item>
|
||||
<item>RIGHT-JUSTIFIED</item>
|
||||
<item>ROLLBACK</item>
|
||||
<item>ROWS</item>
|
||||
<item>SCREEN</item>
|
||||
<item>SCREEN-GROUP1</item>
|
||||
<item>SCREEN-GROUP2</item>
|
||||
<item>SCREEN-GROUP3</item>
|
||||
<item>SCREEN-GROUP4</item>
|
||||
<item>SCREEN-GROUP5</item>
|
||||
<item>SCREEN-INPUT</item>
|
||||
<item>SCREEN-INTENSIFIED</item>
|
||||
<item>SEARCH</item>
|
||||
<item>SELECT</item>
|
||||
<item>SELECTION</item>
|
||||
<item>SELECTION-SCREEN</item>
|
||||
<item>SELECT-OPTIONS</item>
|
||||
<item>SEPARATED</item>
|
||||
<item>SET</item>
|
||||
<item>SHIFT</item>
|
||||
<item>SINGLE</item>
|
||||
<item>SKIP</item>
|
||||
<item>SORT</item>
|
||||
<item>SPACE</item>
|
||||
<item>SPLIT</item>
|
||||
<item>STANDARD</item>
|
||||
<item>STARTING</item>
|
||||
<item>STOP</item>
|
||||
<item>STRLEN</item>
|
||||
<item>STRUCTURE</item>
|
||||
<item>SUBTRACT</item>
|
||||
<item>SY-CUCOL</item>
|
||||
<item>SY-DATUM</item>
|
||||
<item>SY-DYNNR</item>
|
||||
<item>SY-LINSZ</item>
|
||||
<item>SY-LOOPC</item>
|
||||
<item>SY-LSIND</item>
|
||||
<item>SY-MSGID</item>
|
||||
<item>SY-MSGTY</item>
|
||||
<item>SY-MSGV1</item>
|
||||
<item>SY-MSGV2</item>
|
||||
<item>SY-MSGV3</item>
|
||||
<item>SY-MSGV4</item>
|
||||
<item>SY-PAGNO</item>
|
||||
<item>SY-REPID</item>
|
||||
<item>SY-STEPL</item>
|
||||
<item>SY-SUBRC</item>
|
||||
<item>SY-TABIX</item>
|
||||
<item>SY-TCODE</item>
|
||||
<item>SY-TMAXL</item>
|
||||
<item>SY-UCOMM</item>
|
||||
<item>SY-ULINE</item>
|
||||
<item>SY-UNAME</item>
|
||||
<item>SY-UZEIT</item>
|
||||
<item>SY-VLINE</item>
|
||||
<item>TABLE</item>
|
||||
<item>TABLES</item>
|
||||
<item>TABLEVIEW</item>
|
||||
<item>TIMES</item>
|
||||
<item>TITLE</item>
|
||||
<item>TITLEBAR</item>
|
||||
<item>TO</item>
|
||||
<item>TRAILING</item>
|
||||
<item>TRANSPORTING</item>
|
||||
<item>TYPE</item>
|
||||
<item>TYPE-POOLS</item>
|
||||
<item>TYPES</item>
|
||||
<item>ULINE</item>
|
||||
<item>UP</item>
|
||||
<item>UPDATE</item>
|
||||
<item>USING</item>
|
||||
<item>VALUE</item>
|
||||
<item>WHEN</item>
|
||||
<item>WHERE</item>
|
||||
<item>WHILE</item>
|
||||
<item>WITH</item>
|
||||
<item>WORK</item>
|
||||
<item>WRITE</item>
|
||||
<item>AFTER</item>
|
||||
<item>BEFORE</item>
|
||||
<item>CALL</item>
|
||||
<item>DURING</item>
|
||||
<item>ENDFORM</item>
|
||||
<item>END-OF-SELECTION</item>
|
||||
<item>FORM</item>
|
||||
<item>FUNCTION</item>
|
||||
<item>INCLUDE</item>
|
||||
<item>LINE-SELECTION</item>
|
||||
<item>PROCESS</item>
|
||||
<item>START-OF-SELECTION</item>
|
||||
<item>TOP-OF-PAGE</item>
|
||||
<item>TRANSACTION</item>
|
||||
<item>USER-COMMAND</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<AnyChar attribute="Comment" context="Comment" String=""*"/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String="!%&()+,-<:=>[]^~"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<AnyChar attribute="Comment" context="#pop" String=""*"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="*" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" />
|
||||
</general>
|
||||
|
||||
</language>
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!-- Andrea Primiani - primiani at dag dot it
|
||||
version1.10 - 12 december 2005 -->
|
||||
<language name="ABC" version="8" kateversion="5.0" section="Other" extensions="*.abc;*.ABC" mimetype="text/vnd.abc" casesensitive="1" author="Andrea Primiani (primiani@dag.it)" license="LGPL">
|
||||
<highlighting>
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<!-- detects tuplet symbols e.g. (3 or (3:2:2-->
|
||||
<RegExpr attribute="Tuplet" context="#stay" String="\([23456789]:?[23456789]?:?[23456789]?" />
|
||||
<!-- detects quoted strings -->
|
||||
<RangeDetect attribute="String" context="#stay" char=""" char1="""/>
|
||||
<!-- detects decorations delimited by ! ! symbols -->
|
||||
<RangeDetect attribute="Decoration" context="#stay" char="!" char1="!" />
|
||||
<!-- detects single header command delimited by [ and sends to Header context -->
|
||||
<RegExpr attribute="Header" context="Header" String="\[[ABCGHILMNOQRSTUVZ]:" />
|
||||
<!-- detects single header line inside a song without [] - ends at EOL-->
|
||||
<RegExpr attribute="Header" context="Header2" String="[ABCGHILMNOPQRSTUVZ]:" />
|
||||
<!-- detect beginning of header zone with X: and sends to Header context -->
|
||||
<Detect2Chars attribute="Header" context="Header" char="X" char1=":" beginRegion="header" column="0"/>
|
||||
<!-- detects bar beginning (or chord) symbols and sends to Bar context -->
|
||||
<AnyChar attribute="Bar" context="Bar" String="|:[" />
|
||||
<!-- detects ] if used to close chords -->
|
||||
<DetectChar attribute="Bar" context="#stay" char="]" />
|
||||
<!-- detects () for slurs -->
|
||||
<!-- detects {} for gracings -->
|
||||
<AnyChar attribute="Slur" context="#stay" String="(){}" />
|
||||
<!-- detects W: and w: lyric lines -->
|
||||
<Detect2Chars attribute="Lyrics" context="Lyrics" char="W" char1=":" />
|
||||
<Detect2Chars attribute="Lyrics" context="Lyrics" char="w" char1=":" />
|
||||
<!-- detects %% preprocessor lines and % comment lines-->
|
||||
<Detect2Chars attribute="Preprocessor" context="Preprocessor" char="%" char1="%"/>
|
||||
<DetectChar attribute="Comment" context="Comment" char="%" />
|
||||
<!-- detects ^ _ = symbols before a note -->
|
||||
<RegExpr attribute="Sharp" context="#stay" String="[_|\^]?[_|=|\^][A-Ga-g]" />
|
||||
</context>
|
||||
<!-- returns to Normal context at the end of line -->
|
||||
<context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop" />
|
||||
<context name="Lyrics" attribute="Lyrics" lineEndContext="#pop" />
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<!-- returns to Normal context after the end of bar symbols or at EOL -->
|
||||
<context name="Bar" attribute="Bar" lineEndContext="#pop" >
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=""" />
|
||||
<!-- the bar symbol ends when a note letter follows -->
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="[A-Ga-gZz]" />
|
||||
<!-- the bar symbol ends after a white space -->
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=" " />
|
||||
<!-- detects decorations delimited by ! ! symbols -->
|
||||
<RangeDetect attribute="Decoration" context="#stay" char="!" char1="!" />
|
||||
<!-- detects () for slurs -->
|
||||
<AnyChar attribute="Slur" context="#stay" String="()" />
|
||||
<!-- chomps all other bar symbols -->
|
||||
<RegExpr attribute="Bar" context="#pop" String=":*\|*[1-9]|/*\|" />
|
||||
</context>
|
||||
<!-- returns to Normal context at the end of header -->
|
||||
<context name="Header" attribute="Header" lineEndContext="#stay">
|
||||
<!-- the header ends after K: line -->
|
||||
<RegExpr attribute="Header" context="#pop" String="^K:.+" endRegion="header" column="0"/>
|
||||
<!-- the single header command ends at the ] char -->
|
||||
<DetectChar attribute="Header" context="#pop" char="]" />
|
||||
</context>
|
||||
<!-- the single header line ends at EOL -->
|
||||
<context name="Header2" attribute="Header" lineEndContext="#pop" />
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Decoration" defStyleNum="dsFloat" color="#00bbaa" />
|
||||
<itemData name="String" defStyleNum="dsString" bold="true"/>
|
||||
<itemData name="Preprocessor" defStyleNum="dsString" italic="true"/>
|
||||
<itemData name="Header" defStyleNum="dsFloat"/>
|
||||
<itemData name="Slur" defStyleNum="dsDataType" bold="true"/>
|
||||
<itemData name="Tuplet" defStyleNum="dsDataType" color="#bb00bb"/>
|
||||
<itemData name="Lyrics" defStyleNum="dsDataType" color="#00bb00"/>
|
||||
<itemData name="Bar" defStyleNum="dsChar" color="#0000ff"/>
|
||||
<itemData name="Sharp" defStyleNum="dsNormal" color="#22bb66" bold="true"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="%" position="afterwhitespace" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,326 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="ActionScript 2.0" version="10" kateversion="5.79" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)">
|
||||
<highlighting>
|
||||
|
||||
<list name="properties">
|
||||
<item>_accProps</item>
|
||||
<item>_focusrect</item>
|
||||
<item>_global</item>
|
||||
<item>_highquality</item>
|
||||
<item>_level</item>
|
||||
<item>_parent</item>
|
||||
<item>_quality</item>
|
||||
<item>_root</item>
|
||||
<item>_soundbuftime</item>
|
||||
<item>maxscroll</item>
|
||||
<item>scroll</item>
|
||||
<item>this</item>
|
||||
</list>
|
||||
|
||||
<list name="global_functions">
|
||||
<item>asfunction</item>
|
||||
<item>call</item>
|
||||
<item>chr</item>
|
||||
<item>clearInterval</item>
|
||||
<item>duplicateMovieClip</item>
|
||||
<item>escape</item>
|
||||
<item>eval</item>
|
||||
<item>fscommand</item>
|
||||
<item>getProperty</item>
|
||||
<item>getTimer</item>
|
||||
<item>getURL</item>
|
||||
<item>getVersion</item>
|
||||
<item>gotoAndPlay</item>
|
||||
<item>gotoAndStop</item>
|
||||
<item>ifFrameLoaded</item>
|
||||
<item>int</item>
|
||||
<item>isFinite</item>
|
||||
<item>isNaN</item>
|
||||
<item>length</item>
|
||||
<item>loadMovie</item>
|
||||
<item>loadMovieNum</item>
|
||||
<item>loadVariables</item>
|
||||
<item>loadVariablesNum</item>
|
||||
<item>mbchr</item>
|
||||
<item>mblength</item>
|
||||
<item>mbord</item>
|
||||
<item>mbsubstring</item>
|
||||
<item>nextFrame</item>
|
||||
<item>nextScene</item>
|
||||
<item>on</item>
|
||||
<item>onClipEvent</item>
|
||||
<item>ord</item>
|
||||
<item>parseFloat</item>
|
||||
<item>parseInt</item>
|
||||
<item>play</item>
|
||||
<item>prevFrame</item>
|
||||
<item>prevScene</item>
|
||||
<item>print</item>
|
||||
<item>printAsBitmap</item>
|
||||
<item>printAsBitmapNum</item>
|
||||
<item>printNum</item>
|
||||
<item>random</item>
|
||||
<item>removeMovieClip</item>
|
||||
<item>setInterval</item>
|
||||
<item>setProperty</item>
|
||||
<item>showRedrawRegions</item>
|
||||
<item>startDrag</item>
|
||||
<item>stop</item>
|
||||
<item>stopAllSounds</item>
|
||||
<item>stopDrag</item>
|
||||
<item>substring</item>
|
||||
<item>targetPath</item>
|
||||
<item>tellTarget</item>
|
||||
<item>toggleHighQuality</item>
|
||||
<item>trace</item>
|
||||
<item>typeof</item>
|
||||
<item>unescape</item>
|
||||
<item>unloadMovie</item>
|
||||
<item>unloadMovieNum</item>
|
||||
<item>updateAfterEvent</item>
|
||||
</list>
|
||||
|
||||
<list name="classes">
|
||||
<item>Accessibility</item>
|
||||
<item>Accordion</item>
|
||||
<item>Alert</item>
|
||||
<item>Binding</item>
|
||||
<item>Button</item>
|
||||
<item>Camera</item>
|
||||
<item>CellRenderer</item>
|
||||
<item>CheckBox</item>
|
||||
<item>Collection</item>
|
||||
<item>Color</item>
|
||||
<item>ComboBox</item>
|
||||
<item>ComponentMixins</item>
|
||||
<item>ContextMenu</item>
|
||||
<item>ContextMenuItem</item>
|
||||
<item>CustomActions</item>
|
||||
<item>CustomFormatter</item>
|
||||
<item>CustomValidator</item>
|
||||
<item>DataGrid</item>
|
||||
<item>DataHolder</item>
|
||||
<item>DataProvider</item>
|
||||
<item>DataSet</item>
|
||||
<item>DataType</item>
|
||||
<item>Date</item>
|
||||
<item>DateChooser</item>
|
||||
<item>DateField</item>
|
||||
<item>Delta</item>
|
||||
<item>DeltaItem</item>
|
||||
<item>DeltaPacket</item>
|
||||
<item>DepthManager</item>
|
||||
<item>EndPoint</item>
|
||||
<item>Error</item>
|
||||
<item>FaultEvent</item>
|
||||
<item>FocusManager</item>
|
||||
<item>Form</item>
|
||||
<item>Function</item>
|
||||
<item>Iterator</item>
|
||||
<item>Key</item>
|
||||
<item>Label</item>
|
||||
<item>List</item>
|
||||
<item>LoadVars</item>
|
||||
<item>Loader</item>
|
||||
<item>LocalConnection</item>
|
||||
<item>Log</item>
|
||||
<item>Math</item>
|
||||
<item>Media</item>
|
||||
<item>Menu</item>
|
||||
<item>MenuBar</item>
|
||||
<item>Microphone</item>
|
||||
<item>Mouse</item>
|
||||
<item>MovieClip</item>
|
||||
<item>MovieClipLoader</item>
|
||||
<item>NetConnection</item>
|
||||
<item>NetStream</item>
|
||||
<item>Number</item>
|
||||
<item>NumericStepper</item>
|
||||
<item>PendingCall</item>
|
||||
<item>PopUpManager</item>
|
||||
<item>PrintJob</item>
|
||||
<item>ProgressBar</item>
|
||||
<item>RDBMSResolver</item>
|
||||
<item>RadioButton</item>
|
||||
<item>RelayResponder</item>
|
||||
<item>SOAPCall</item>
|
||||
<item>Screen</item>
|
||||
<item>ScrollPane</item>
|
||||
<item>Selection</item>
|
||||
<item>SharedObject</item>
|
||||
<item>Slide</item>
|
||||
<item>Sound</item>
|
||||
<item>Stage</item>
|
||||
<item>StyleManager</item>
|
||||
<item>System</item>
|
||||
<item>TextArea</item>
|
||||
<item>TextField</item>
|
||||
<item>TextFormat</item>
|
||||
<item>TextInput</item>
|
||||
<item>TextSnapshot</item>
|
||||
<item>TransferObject</item>
|
||||
<item>Tree</item>
|
||||
<item>TreeDataProvider</item>
|
||||
<item>TypedValue</item>
|
||||
<item>UIComponent</item>
|
||||
<item>UIEventDispatcher</item>
|
||||
<item>UIObject</item>
|
||||
<item>Video</item>
|
||||
<item>WebService</item>
|
||||
<item>WebServiceConnector</item>
|
||||
<item>Window</item>
|
||||
<item>XML</item>
|
||||
<item>XMLConnector</item>
|
||||
<item>XUpdateResolver</item>
|
||||
</list>
|
||||
|
||||
<list name="keywords">
|
||||
<item>add</item>
|
||||
<item>and</item>
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>catch</item>
|
||||
<item>class</item>
|
||||
<item>continue</item>
|
||||
<item>default</item>
|
||||
<item>delete</item>
|
||||
<item>do</item>
|
||||
<item>dynamic</item>
|
||||
<item>else</item>
|
||||
<item>eq</item>
|
||||
<item>extends</item>
|
||||
<item>finally</item>
|
||||
<item>for</item>
|
||||
<item>function</item>
|
||||
<item>ge</item>
|
||||
<item>get</item>
|
||||
<item>gt</item>
|
||||
<item>if</item>
|
||||
<item>implements</item>
|
||||
<item>import</item>
|
||||
<item>in</item>
|
||||
<item>instanceof</item>
|
||||
<item>interface</item>
|
||||
<item>intrinsic</item>
|
||||
<item>le</item>
|
||||
<item>lt</item>
|
||||
<item>ne</item>
|
||||
<item>new</item>
|
||||
<item>not</item>
|
||||
<item>or</item>
|
||||
<item>private</item>
|
||||
<item>public</item>
|
||||
<item>return</item>
|
||||
<item>set</item>
|
||||
<item>static</item>
|
||||
<item>switch</item>
|
||||
<item>throw</item>
|
||||
<item>try</item>
|
||||
<item>var</item>
|
||||
<item>void</item>
|
||||
<item>while</item>
|
||||
<item>with</item>
|
||||
</list>
|
||||
|
||||
<list name="const">
|
||||
<item>false</item>
|
||||
<item>Infinity</item>
|
||||
<item>NaN</item>
|
||||
<item>newline</item>
|
||||
<item>null</item>
|
||||
<item>true</item>
|
||||
<item>undefined</item>
|
||||
</list>
|
||||
|
||||
<list name="types">
|
||||
<item>Array</item>
|
||||
<item>Boolean</item>
|
||||
<item>Number</item>
|
||||
<item>Object</item>
|
||||
<item>String</item>
|
||||
<item>Void</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<!-- Comment next line if you don't use Javadoc tool -->
|
||||
<IncludeRules context="##Javadoc"/>
|
||||
<WordDetect attribute="Keyword" context="Imports" String="package" />
|
||||
<WordDetect attribute="Keyword" context="ImportsPrefix" String="import" lookAhead="true" />
|
||||
<keyword attribute="Properties" context="#stay" String="properties"/>
|
||||
<keyword attribute="Global Functions" context="#stay" String="global_functions"/>
|
||||
<keyword attribute="Classes" context="#stay" String="classes"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Constants" context="#stay" String="const"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<HlCOct attribute="Octal" context="#stay"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<HlCChar attribute="Char" context="#stay"/>
|
||||
<RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>
|
||||
<RegExpr attribute="Decimal" context="#stay" String="//\s*END.*$" endRegion="Region1"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
|
||||
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\.{3,3}\s+" />
|
||||
<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(?:/\*\s*\d+\s*\*/\s*)?[(])" />
|
||||
<DetectChar attribute="Symbol" context="Member" char="." />
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/*<=>?[]|~^;"/>
|
||||
</context>
|
||||
<context name="ImportsPrefix" attribute="Keyword" lineEndContext="#pop">
|
||||
<RegExpr attribute="Keyword" context="#pop!StaticImports" String="import\s+static\b" />
|
||||
<WordDetect attribute="Keyword" context="#pop!Imports" String="import" />
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<LineContinue attribute="String" context="#stay"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Function" context="#pop" String="\b[_a-zA-Z]\w*(?=[\s]*)" />
|
||||
</context>
|
||||
<context attribute="StaticImports" lineEndContext="#pop" name="StaticImports"/>
|
||||
<context attribute="Imports" lineEndContext="#pop" name="Imports"/>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction"/>
|
||||
<itemData name="StaticImports" defStyleNum="dsImport"/>
|
||||
<itemData name="Imports" defStyleNum="dsImport"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialString"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Properties" defStyleNum="dsAttribute" bold="1"/>
|
||||
<itemData name="Global Functions" defStyleNum="dsFunction" bold="1"/>
|
||||
<itemData name="Classes" defStyleNum="dsBuiltIn" bold="1"/>
|
||||
<itemData name="Constants" defStyleNum="dsConstant" bold="1"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//"/>
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,346 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY b2 "[0-1]++(_?[0-1])*+">
|
||||
<!ENTITY b3 "[0-2]++(_?[0-2])*+">
|
||||
<!ENTITY b4 "[0-3]++(_?[0-3])*+">
|
||||
<!ENTITY b5 "[0-4]++(_?[0-4])*+">
|
||||
<!ENTITY b6 "[0-5]++(_?[0-5])*+">
|
||||
<!ENTITY b7 "[0-6]++(_?[0-6])*+">
|
||||
<!ENTITY b8 "[0-7]++(_?[0-7])*+">
|
||||
<!ENTITY b9 "[0-8]++(_?[0-8])*+">
|
||||
<!ENTITY b10 "[0-9]++(_?[0-9])*+">
|
||||
<!ENTITY b11 "[0-9a-a]++(_?[0-9]a-a)*+">
|
||||
<!ENTITY b12 "[0-9a-b]++(_?[0-9]a-b)*+">
|
||||
<!ENTITY b13 "[0-9a-c]++(_?[0-9]a-c)*+">
|
||||
<!ENTITY b14 "[0-9a-d]++(_?[0-9]a-d)*+">
|
||||
<!ENTITY b15 "[0-9a-e]++(_?[0-9]a-e)*+">
|
||||
<!ENTITY b16 "[0-9a-f]++(_?[0-9]a-f)*+">
|
||||
]>
|
||||
<language name="Ada"
|
||||
version="7"
|
||||
kateversion="5.79"
|
||||
section="Sources"
|
||||
extensions="*.adb;*.ads;*.ada;*.a"
|
||||
indenter="ada"
|
||||
mimetype="text/x-adasrc">
|
||||
<highlighting>
|
||||
<!-- http://ada-auth.org/standards/rm12_w_tc1/html/RM-P.html -->
|
||||
|
||||
<!-- http://ada-auth.org/standards/rm12_w_tc1/html/RM-2-9.html -->
|
||||
<list name="keywords">
|
||||
<item>abort</item>
|
||||
<item>abs</item>
|
||||
<item>abstract</item>
|
||||
<item>accept</item>
|
||||
<item>access</item>
|
||||
<item>aliased</item>
|
||||
<item>all</item>
|
||||
<item>and</item>
|
||||
<item>array</item>
|
||||
<item>at</item>
|
||||
<item>begin</item>
|
||||
<item>body</item>
|
||||
<item>case</item>
|
||||
<item>constant</item>
|
||||
<item>declare</item>
|
||||
<item>delay</item>
|
||||
<item>delta</item>
|
||||
<item>digits</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>elsif</item>
|
||||
<item>end</item>
|
||||
<item>entry</item>
|
||||
<item>exception</item>
|
||||
<item>exit</item>
|
||||
<item>for</item>
|
||||
<item>function</item>
|
||||
<item>generic</item>
|
||||
<item>goto</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>interface</item>
|
||||
<item>is</item>
|
||||
<item>limited</item>
|
||||
<item>loop</item>
|
||||
<item>mod</item>
|
||||
<item>new</item>
|
||||
<item>not</item>
|
||||
<item>null</item>
|
||||
<item>of</item>
|
||||
<item>or</item>
|
||||
<item>others</item>
|
||||
<item>out</item>
|
||||
<item>overriding</item>
|
||||
<item>package</item>
|
||||
<item>pragma</item>
|
||||
<item>private</item>
|
||||
<item>procedure</item>
|
||||
<item>protected</item>
|
||||
<item>raise</item>
|
||||
<item>range</item>
|
||||
<item>record</item>
|
||||
<item>rem</item>
|
||||
<item>renames</item>
|
||||
<item>requeue</item>
|
||||
<item>return</item>
|
||||
<item>reverse</item>
|
||||
<item>select</item>
|
||||
<item>separate</item>
|
||||
<item>some</item>
|
||||
<item>subtype</item>
|
||||
<item>synchronized</item>
|
||||
<item>tagged</item>
|
||||
<item>task</item>
|
||||
<item>terminate</item>
|
||||
<item>then</item>
|
||||
<item>type</item>
|
||||
<item>until</item>
|
||||
<item>use</item>
|
||||
<item>when</item>
|
||||
<item>while</item>
|
||||
<item>with</item>
|
||||
<item>xor</item>
|
||||
</list>
|
||||
|
||||
<list name="pragmas">
|
||||
<item>all_calls_remote</item>
|
||||
<item>assert</item>
|
||||
<item>assertion_policy</item>
|
||||
<item>asynchronous</item>
|
||||
<item>atomic</item>
|
||||
<item>atomic_components</item>
|
||||
<item>attach_handler</item>
|
||||
<item>controlled</item>
|
||||
<item>convention</item>
|
||||
<item>detect_blocking</item>
|
||||
<item>discard_names</item>
|
||||
<item>elaborate</item>
|
||||
<item>elaborate_all</item>
|
||||
<item>elaborate_body</item>
|
||||
<item>export</item>
|
||||
<item>import</item>
|
||||
<item>inline</item>
|
||||
<item>inspection_point</item>
|
||||
<item>interrupt_handler</item>
|
||||
<item>interrupt_priority</item>
|
||||
<item>linker_options</item>
|
||||
<item>list</item>
|
||||
<item>locking_policy</item>
|
||||
<item>no_return</item>
|
||||
<item>normalize_scalars</item>
|
||||
<item>optimize</item>
|
||||
<item>pack</item>
|
||||
<item>page</item>
|
||||
<item>partition_elaboration_policy</item>
|
||||
<item>preelaborable_initialization</item>
|
||||
<item>preelaborate</item>
|
||||
<item>priority</item>
|
||||
<item>priority_specific_dispatching</item>
|
||||
<item>profile</item>
|
||||
<item>pure</item>
|
||||
<item>queuing_policy</item>
|
||||
<item>relative_deadline</item>
|
||||
<item>remote_call_interface</item>
|
||||
<item>remote_types</item>
|
||||
<item>restrictions</item>
|
||||
<item>reviewable</item>
|
||||
<item>shared_passive</item>
|
||||
<item>storage_size</item>
|
||||
<item>suppress</item>
|
||||
<item>task_dispatching_policy</item>
|
||||
<item>unchecked_union</item>
|
||||
<item>unsuppress</item>
|
||||
<item>volatile</item>
|
||||
<item>volatile_components</item>
|
||||
</list>
|
||||
|
||||
<list name="types">
|
||||
<item>boolean</item>
|
||||
<item>character</item>
|
||||
<item>float</item>
|
||||
<item>integer</item>
|
||||
<item>long_float</item>
|
||||
<item>long_integer</item>
|
||||
<item>long_long_float</item>
|
||||
<item>long_long_integer</item>
|
||||
<item>short_float</item>
|
||||
<item>short_integer</item>
|
||||
<item>string</item>
|
||||
<item>wide_string</item>
|
||||
<item>wide_character</item>
|
||||
<item>wide_wide_character</item>
|
||||
<item>wide_wide_string</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Default">
|
||||
<DetectSpaces />
|
||||
|
||||
<StringDetect attribute="Region Marker" context="Region Marker" String="-- BEGIN" beginRegion="RegionMarker" firstNonSpace="true" />
|
||||
<StringDetect attribute="Region Marker" context="Region Marker" String="-- END" endRegion="RegionMarker" firstNonSpace="true" />
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>|"/>
|
||||
<AnyChar context="Numeric" String="0123456789" lookAhead="1"/>
|
||||
<DetectChar context="String" char=""" lookAhead="1"/>
|
||||
|
||||
<WordDetect attribute="Keyword" context="#stay" String="record" insensitive="true" beginRegion="RecordRegion"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="case" insensitive="true" beginRegion="CaseRegion"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="if" insensitive="true" beginRegion="IfRegion"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="loop" insensitive="true" beginRegion="LoopRegion"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="select" insensitive="true" beginRegion="SelectRegion"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="begin" insensitive="true" beginRegion="BeginRegion"/>
|
||||
|
||||
<WordDetect attribute="Keyword" context="End" String="end" insensitive="true" lookAhead="1"/>
|
||||
<WordDetect attribute="Keyword" context="Null" String="null" insensitive="true"/>
|
||||
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Pragmas" context="#stay" String="pragmas" />
|
||||
<keyword attribute="Data Type" context="#stay" String="types" />
|
||||
|
||||
<DetectIdentifier />
|
||||
|
||||
<RegExpr attribute="Char" context="#stay" String="'.'"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Keyword" lineEndContext="#pop" name="End">
|
||||
<RegExpr attribute="Keyword" context="#pop" String="end\s+record\b" insensitive="true" endRegion="RecordRegion"/>
|
||||
<RegExpr attribute="Keyword" context="#pop" String="end\s+case\b" insensitive="true" endRegion="CaseRegion"/>
|
||||
<RegExpr attribute="Keyword" context="#pop" String="end\s+if\b" insensitive="true" endRegion="IfRegion"/>
|
||||
<RegExpr attribute="Keyword" context="#pop" String="end\s+loop\b" insensitive="true" endRegion="LoopRegion"/>
|
||||
<RegExpr attribute="Keyword" context="#pop" String="end\s+select\b" insensitive="true" endRegion="SelectRegion"/>
|
||||
<DetectIdentifier attribute="Keyword" context="#pop" endRegion="BeginRegion"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Null" fallthroughContext="#pop">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<WordDetect attribute="Keyword" context="#pop" String="record" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Numeric">
|
||||
<RegExpr attribute="Float" context="NumericExp" String="\b&b10;\.&b10;"/>
|
||||
<RegExpr attribute="Decimal" context="NumericExp" String="\b&b10;(?!#)"/>
|
||||
<WordDetect attribute="Base" context="Base2" String="2#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base3" String="3#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base4" String="4#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base5" String="5#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base6" String="6#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base7" String="7#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base8" String="8#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base9" String="9#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base10" String="10#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base11" String="11#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base12" String="12#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base13" String="13#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base14" String="14#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base15" String="15#" additionalDeliminator="#"/>
|
||||
<WordDetect attribute="Base" context="Base16" String="16#" additionalDeliminator="#"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="NumericExp" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Exponent" context="#pop#pop" String="(?:[eE][-+]?&b10;)"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base2" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b2;\.&b2;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b2;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base3" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b3;\.&b3;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b3;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base4" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b4;\.&b4;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b4;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base5" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b5;\.&b5;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b5;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base6" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b6;\.&b6;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b6;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base7" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b7;\.&b7;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b7;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base8" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b8;\.&b8;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b8;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base9" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b9;\.&b9;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b9;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base10" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b10;\.&b10;"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b10;"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base11" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b11;\.&b11;" insensitive="1"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b11;" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base12" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b12;\.&b12;" insensitive="1"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b12;" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base13" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b13;\.&b13;" insensitive="1"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b13;" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base14" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b14;\.&b14;" insensitive="1"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b14;" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base15" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b15;\.&b15;" insensitive="1"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b15;" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Base16" fallthroughContext="#pop#pop">
|
||||
<RegExpr attribute="Float" context="BaseExp" String="&b16;\.&b16;" insensitive="1"/>
|
||||
<RegExpr attribute="Decimal" context="BaseExp" String="&b16;" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="BaseExp" fallthroughContext="#pop#pop#pop">
|
||||
<DetectChar attribute="Base" context="#pop#pop!NumericExp" char="#"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#pop" name="String" fallthroughContext="PartialString">
|
||||
<RangeDetect attribute="String" context="#pop" char=""" char1="""/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop#pop" name="PartialString">
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" />
|
||||
<itemData name="Pragmas" defStyleNum="dsExtension" bold="1" />
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" />
|
||||
<itemData name="Float" defStyleNum="dsFloat" />
|
||||
<itemData name="Base" defStyleNum="dsBaseN" />
|
||||
<itemData name="Exponent" defStyleNum="dsDecVal" />
|
||||
<itemData name="Char" defStyleNum="dsChar" />
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="--" position="afterwhitespace" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!-- See https://adblockplus.org/en/filters -->
|
||||
<language
|
||||
name="Adblock Plus"
|
||||
version="2"
|
||||
kateversion="5.0"
|
||||
section="Configuration"
|
||||
author="Volker Krause (vkrause@kde.org)"
|
||||
extensions=""
|
||||
license="MIT">
|
||||
<highlighting>
|
||||
<list name="special-comment-list">
|
||||
<item>Homepage</item>
|
||||
<item>Title</item>
|
||||
<item>Expires</item>
|
||||
<item>Checksum</item>
|
||||
<item>Redirect</item>
|
||||
<item>Version</item>
|
||||
</list>
|
||||
<list name="filter-option-list">
|
||||
<item>script</item>
|
||||
<item>image</item>
|
||||
<item>stylesheet</item>
|
||||
<item>object</item>
|
||||
<item>xmlhttprequest</item>
|
||||
<item>object-subrequest</item>
|
||||
<item>subdocument</item>
|
||||
<item>ping</item>
|
||||
<item>websocket</item>
|
||||
<item>webrtc</item>
|
||||
<item>document</item>
|
||||
<item>elemhide</item>
|
||||
<item>generichide</item>
|
||||
<item>genericblock</item>
|
||||
<item>popup</item>
|
||||
<item>other</item>
|
||||
<item>third-party</item>
|
||||
<item>domain</item>
|
||||
<item>sitekey</item>
|
||||
<item>match-case</item>
|
||||
<item>collapse</item>
|
||||
<item>donottrack</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="rule-context" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar char="!" column="0" context="comment-context" attribute="Comment"/>
|
||||
<DetectChar char="[" column="0" context="header-context" attribute="Header"/>
|
||||
<Detect2Chars char="@" char1="@" column="0" context="exception-context" attribute="Exception Rule"/>
|
||||
<DetectChar char="$" context="option-context" attribute="Filter Option"/>
|
||||
<Detect2Chars char="#" char1="#" context="element-hiding-context" attribute="Element Hiding Rule"/>
|
||||
<StringDetect String="#@#" context="element-hiding-context" attribute="Element Hiding Rule"/>
|
||||
</context>
|
||||
|
||||
<context name="comment-context" attribute="Comment" lineEndContext="#pop">
|
||||
<keyword String="special-comment-list" attribute="Special Comment"/>
|
||||
</context>
|
||||
|
||||
<context name="header-context" attribute="Header" lineEndContext="#pop"/>
|
||||
|
||||
<context name="exception-context" attribute="Exception Rule" lineEndContext="#pop">
|
||||
<DetectChar char="$" context="#pop!option-context" attribute="Filter Option"/>
|
||||
</context>
|
||||
|
||||
<context name="option-context" attribute="Normal Text" lineEndContext="#pop">
|
||||
<keyword String="filter-option-list" attribute="Filter Option"/>
|
||||
</context>
|
||||
|
||||
<context name="element-hiding-context" attribute="Element Hiding Rule" lineEndContext="#pop"/>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Special Comment" defStyleNum="dsCommentVar" spellChecking="false"/>
|
||||
<itemData name="Header" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Exception Rule" defStyleNum="dsVariable" spellChecking="false"/>
|
||||
<itemData name="Filter Option" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Element Hiding Rule" defStyleNum="dsString" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="!"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1" weakDeliminator="-" additionalDeliminator="$"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
@@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language[
|
||||
<!ENTITY charsdelim "_;."(){}@">
|
||||
<!ENTITY wordsep "(?=[&charsdelim;]|\s|$)">
|
||||
]>
|
||||
<language name="Agda" version="9" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">
|
||||
<highlighting>
|
||||
<list name="reserved keywords">
|
||||
<item>abstract</item>
|
||||
<item>codata</item>
|
||||
<item>coinductive</item>
|
||||
<item>constructor</item>
|
||||
<item>data</item>
|
||||
<item>do</item>
|
||||
<item>eta-equality</item>
|
||||
<item>field</item>
|
||||
<item>forall</item>
|
||||
<item>hiding</item>
|
||||
<item>import</item>
|
||||
<item>in</item>
|
||||
<item>inductive</item>
|
||||
<item>infix</item>
|
||||
<item>infixl</item>
|
||||
<item>infixr</item>
|
||||
<item>instance</item>
|
||||
<item>interleaved</item>
|
||||
<item>let</item>
|
||||
<item>macro</item>
|
||||
<item>module</item>
|
||||
<item>mutual</item>
|
||||
<item>no-eta-equality</item>
|
||||
<item>open</item>
|
||||
<item>overlap</item>
|
||||
<item>pattern</item>
|
||||
<item>postulate</item>
|
||||
<item>primitive</item>
|
||||
<item>private</item>
|
||||
<item>public</item>
|
||||
<item>quote</item>
|
||||
<item>quoteTerm</item>
|
||||
<item>record</item>
|
||||
<item>renaming</item>
|
||||
<item>rewrite</item>
|
||||
<item>syntax</item>
|
||||
<item>tactic</item>
|
||||
<item>to</item>
|
||||
<item>unquote</item>
|
||||
<item>unquoteDecl</item>
|
||||
<item>unquoteDef</item>
|
||||
<item>using</item>
|
||||
<item>variable</item>
|
||||
<item>where</item>
|
||||
<item>with</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal" lineEndContext="#stay" name="code">
|
||||
<RegExpr attribute="Pragma" context="#stay" String="\{-#.*#-\}" />
|
||||
<keyword attribute="Keyword" context="#stay" String="reserved keywords" />
|
||||
<RegExpr attribute="Type" context="#stay" String="(?:Prop[₀-₉]+|Prop[0-9]*|Set[₀-₉]+|Set[0-9]*)&wordsep;" />
|
||||
<RegExpr attribute="Special" context="#stay" String="(?:\->|→|∀|λ|:|=|\|)&wordsep;" />
|
||||
<RegExpr attribute="Float" context="#stay" String="\d+(?:(?:\.\d+)?[eE][+-]?\d+|\.\d+)&wordsep;" />
|
||||
<RegExpr attribute="Decimal" context="#stay" String="[0-9]+&wordsep;" />
|
||||
<DetectChar attribute="Char" context="char" char="'" />
|
||||
<DetectChar attribute="String" context="string" char=""" />
|
||||
<Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />
|
||||
<Detect2Chars attribute="Comment" context="comments" char="{" char1="-" beginRegion="CommentBlock" />
|
||||
<Detect2Chars attribute="Hole" context="hole" char="{" char1="!" />
|
||||
<!-- delimiters which cannot be part of an identifier, or
|
||||
backslash which starts a lambda expression -->
|
||||
<AnyChar attribute="Special" context="#stay" String="&charsdelim;\\" />
|
||||
<!-- any other identifier (can contain backslash and single
|
||||
quote anywhere except at start, but these two special
|
||||
cases are already taken care off above) -->
|
||||
<RegExpr attribute="Normal" context="#stay" String="[^&charsdelim;\s]+" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="comment">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="comments" noIndentationBasedFolding="1">
|
||||
<Detect2Chars attribute="Comment" context="comments" char="{" char1="-" beginRegion="CommentBlock" /> <!-- for nested comments -->
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="CommentBlock" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Hole" lineEndContext="#stay" name="hole">
|
||||
<Detect2Chars attribute="Hole" context="#pop" char="!" char1="}" />
|
||||
</context>
|
||||
<context attribute="Char" lineEndContext="#pop" name="char">
|
||||
<Detect2Chars attribute="Char" context="#stay" char="\" char1="'" />
|
||||
<DetectChar attribute="Char" context="#pop" char="'" />
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#stay" name="string">
|
||||
<Detect2Chars attribute="String" context="#stay" char="\" char1=""" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Pragma" defStyleNum="dsPreprocessor" spellChecking="false" />
|
||||
<itemData name="Hole" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Type" defStyleNum="dsDataType" spellChecking="false" />
|
||||
<itemData name="Special" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
|
||||
<itemData name="Char" defStyleNum="dsChar" spellChecking="false" />
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<folding indentationsensitive="1"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start="--" position="afterwhitespace" />
|
||||
<comment name="multiLine" start="{-" end="-}" region="CommentBlock" />
|
||||
</comments>
|
||||
<keywords casesensitive="1"
|
||||
weakDeliminator=":!+,-<=>%&*/?[]^|~\\"
|
||||
additionalDeliminator="&charsdelim;" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="AHDL" version="6" kateversion="5.0" section="Hardware" extensions="*.ahdl;*.tdf" mimetype="text/x-ahdl" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>assert</item>
|
||||
<item>bidir</item>
|
||||
<item>bits</item>
|
||||
<item>buried</item>
|
||||
<item>case</item>
|
||||
<item>clique</item>
|
||||
<item>connected_pins</item>
|
||||
<item>constant</item>
|
||||
<item>defaults</item>
|
||||
<item>define</item>
|
||||
<item>design</item>
|
||||
<item>device</item>
|
||||
<item>else</item>
|
||||
<item>elsif</item>
|
||||
<item>for</item>
|
||||
<item>function</item>
|
||||
<item>generate</item>
|
||||
<item>gnd</item>
|
||||
<item>help_id</item>
|
||||
<item>in</item>
|
||||
<item>include</item>
|
||||
<item>input</item>
|
||||
<item>is</item>
|
||||
<item>machine</item>
|
||||
<item>node</item>
|
||||
<item>of</item>
|
||||
<item>options</item>
|
||||
<item>others</item>
|
||||
<item>output</item>
|
||||
<item>parameters</item>
|
||||
<item>returns</item>
|
||||
<item>states</item>
|
||||
<item>subdesign</item>
|
||||
<item>then</item>
|
||||
<item>title</item>
|
||||
<item>to</item>
|
||||
<item>tri_state_node</item>
|
||||
<item>variable</item>
|
||||
<item>vcc</item>
|
||||
<item>when</item>
|
||||
<item>with</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>carry</item>
|
||||
<item>cascade</item>
|
||||
<item>dffe</item>
|
||||
<item>dff</item>
|
||||
<item>exp</item>
|
||||
<item>global</item>
|
||||
<item>jkffe</item>
|
||||
<item>jkff</item>
|
||||
<item>latch</item>
|
||||
<item>lcell</item>
|
||||
<item>mcell</item>
|
||||
<item>memory</item>
|
||||
<item>opendrn</item>
|
||||
<item>soft</item>
|
||||
<item>srffe</item>
|
||||
<item>srff</item>
|
||||
<item>tffe</item>
|
||||
<item>tff</item>
|
||||
<item>tri</item>
|
||||
<item>wire</item>
|
||||
<item>x</item>
|
||||
</list>
|
||||
<list name="operator">
|
||||
<item>not</item>
|
||||
<item>and</item>
|
||||
<item>nand</item>
|
||||
<item>or</item>
|
||||
<item>nor</item>
|
||||
<item>xor</item>
|
||||
<item>xnor</item>
|
||||
<item>mod</item>
|
||||
<item>div</item>
|
||||
<item>log2</item>
|
||||
<item>used</item>
|
||||
<item>ceil</item>
|
||||
<item>floor</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bdefaults\b" insensitive="true" beginRegion="def"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bend\s+defaults\b" insensitive="true" endRegion="def"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bif\b" insensitive="true" beginRegion="if"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bend\s+if\b" insensitive="true" endRegion="if"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\btable\b" insensitive="true" beginRegion="table"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bend\s+table\b" insensitive="true" endRegion="table"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bcase\b" insensitive="true" beginRegion="case"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bend\s+case\b" insensitive="true" endRegion="case"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bbegin\b" insensitive="true" beginRegion="block"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bend\b" insensitive="true" endRegion="block"/>
|
||||
<DetectChar attribute="Normal Text" context="#stay" char="(" beginRegion="bracket"/>
|
||||
<DetectChar attribute="Normal Text" context="#stay" char=")" endRegion="bracket"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
<keyword attribute="Operator" context="#stay" String="operator"/>
|
||||
<RegExpr attribute="Decimal" context="#stay" String="\b(\d+)\b" />
|
||||
<RegExpr attribute="Bit" context="#stay" String="\bb"(0|1|x)+"" insensitive="true"/>
|
||||
<RegExpr attribute="Octal" context="#stay" String="\b(o|q)"[0-7*]"" insensitive="true"/>
|
||||
<RegExpr attribute="Hex" context="#stay" String="\b(h|x)"[0-9a-f]*"" insensitive="true"/>
|
||||
<DetectChar attribute="String" context="string" char=""" />
|
||||
<RegExpr attribute="Region Marker" context="#stay" String="--\s*BEGIN.*$" beginRegion="region" firstNonSpace="true"/>
|
||||
<RegExpr attribute="Region Marker" context="#stay" String="--\s*END.*$" endRegion="region" firstNonSpace="true"/>
|
||||
<Detect2Chars attribute="Comment" context="LineComment" char="-" char1="-" />
|
||||
<DetectChar attribute="Comment" context="comment" char="%" />
|
||||
<HlCChar attribute="Char" context="#stay"/>
|
||||
</context>
|
||||
<context name="string" attribute="String" lineEndContext="#stay" >
|
||||
<Detect2Chars attribute="Char" context="#stay" char="\" char1=""" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
</context>
|
||||
<context name="comment" attribute="Comment" lineEndContext="#stay" >
|
||||
<DetectChar attribute="Comment" context="#pop" char="%" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context name="LineComment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false" />
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="Bit" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="--" />
|
||||
<comment name="multiLine" start="%" end="%" region="Comment" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language version="8" kateversion="3.1" name="Alerts" section="Other" extensions="" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" hidden="true">
|
||||
<highlighting>
|
||||
<list name="alerts_hi">
|
||||
<item>ALERT</item>
|
||||
<item>ATTENTION</item>
|
||||
<item>DANGER</item>
|
||||
<item>HACK</item>
|
||||
<item>SECURITY</item>
|
||||
</list>
|
||||
<list name="alerts_mid">
|
||||
<item>BUG</item>
|
||||
<item>FIXME</item>
|
||||
<item>DEPRECATED</item>
|
||||
<item>TASK</item>
|
||||
<item>TODO</item>
|
||||
<item>TBD</item>
|
||||
<item>WARNING</item>
|
||||
<item>CAUTION</item>
|
||||
<item>NOLINT</item>
|
||||
<item>NOQA</item>
|
||||
</list>
|
||||
<list name="alerts_lo">
|
||||
<item>###</item>
|
||||
<item>NOTE</item>
|
||||
<item>NOTICE</item>
|
||||
<item>TEST</item>
|
||||
<item>TESTING</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
|
||||
<StringDetect attribute="Region Marker" context="#stay" String="{{{" beginRegion="AlertRegion1" />
|
||||
<StringDetect attribute="Region Marker" context="#stay" String="}}}" endRegion="AlertRegion1" />
|
||||
<WordDetect attribute="Region Marker" context="#stay" String="BEGIN" beginRegion="AlertRegion2" />
|
||||
<WordDetect attribute="Region Marker" context="#stay" String="END" endRegion="AlertRegion2" />
|
||||
<keyword attribute="Alert Level 1" context="#stay" String="alerts_hi" />
|
||||
<keyword attribute="Alert Level 2" context="#stay" String="alerts_mid" />
|
||||
<!-- Some (Python?) linters use `noqa:` (small case w/ colon) -->
|
||||
<WordDetect attribute="Alert Level 2" context="#stay" String="noqa:" />
|
||||
<keyword attribute="Alert Level 3" context="#stay" String="alerts_lo" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Alert Level 1" defStyleNum="dsAlert" color="#e85848" selColor="#e85848" backgroundColor="#451e1a" />
|
||||
<itemData name="Alert Level 2" defStyleNum="dsAlert" color="#ca9219" selColor="#ca9219" backgroundColor="#451e1a" />
|
||||
<itemData name="Alert Level 3" defStyleNum="dsAlert" color="#81ca2d" selColor="#81ca2d" />
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<!-- NO-BREAK SPACE (nbsp) as deliminator -->
|
||||
<keywords casesensitive="1" additionalDeliminator=" "/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: indent-width 2; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,596 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
*************************************************************************
|
||||
|
||||
ANS Forth 94 syntax highlighting for Kate.
|
||||
|
||||
Copyright (C) 2011, Mark Corbin (mark@dibsco.co.uk)
|
||||
|
||||
*************************************************************************
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 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 Lesser
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301 USA
|
||||
|
||||
*************************************************************************
|
||||
|
||||
Version 1.0 (23-11-11)
|
||||
- Added additional file extensions.
|
||||
|
||||
Version 0.1 (08-11-11)
|
||||
- Initial release for comment.
|
||||
|
||||
*************************************************************************
|
||||
-->
|
||||
<language name="ANS-Forth94" version="8" kateversion="5.0" section="Sources" extensions="*.4th;*.4TH;*.f;*.F;*.frt;*.FRT;*.fs;*.FS;*.fth;*.FTH;*.seq;*.SEQ" mimetype="" author="Mark Corbin (mark@dibsco.co.uk)" license="LGPLv2.1+" priority="5">
|
||||
<highlighting>
|
||||
<list name="core-keywords">
|
||||
<item>!</item>
|
||||
<item>#</item>
|
||||
<item>#></item> <!-- #> -->
|
||||
<item>#S</item>
|
||||
<item>'</item> <!-- ' -->
|
||||
<item>(</item>
|
||||
<item>*</item>
|
||||
<item>*/</item>
|
||||
<item>*/MOD</item>
|
||||
<item>+</item>
|
||||
<item>+!</item>
|
||||
<item>+LOOP</item>
|
||||
<item>,</item>
|
||||
<item>-</item>
|
||||
<item>.</item>
|
||||
<item>."</item> <!-- ." -->
|
||||
<item>/</item>
|
||||
<item>/MOD</item>
|
||||
<item>0<</item> <!-- 0< -->
|
||||
<item>0=</item>
|
||||
<item>1+</item>
|
||||
<item>1-</item>
|
||||
<item>2!</item>
|
||||
<item>2*</item>
|
||||
<item>2/</item>
|
||||
<item>2@</item>
|
||||
<item>2DROP</item>
|
||||
<item>2DUP</item>
|
||||
<item>2OVER</item>
|
||||
<item>2SWAP</item>
|
||||
<item>:</item>
|
||||
<item>;</item>
|
||||
<item><</item> <!-- < -->
|
||||
<item><#</item> <!-- <# -->
|
||||
<item>=</item>
|
||||
<item>></item> <!-- > -->
|
||||
<item>>BODY</item> <!-- >BODY -->
|
||||
<item>>IN</item> <!-- >IN -->
|
||||
<item>>NUMBER</item> <!-- >NUMBER -->
|
||||
<item>>R</item> <!-- >R -->
|
||||
<item>?DUP</item>
|
||||
<item>@</item>
|
||||
<item>ABORT</item>
|
||||
<item>ABORT"</item> <!-- ABORT" -->
|
||||
<item>ABS</item>
|
||||
<item>ACCEPT</item>
|
||||
<item>ALIGN</item>
|
||||
<item>ALIGNED</item>
|
||||
<item>ALLOT</item>
|
||||
<item>AND</item>
|
||||
<item>BASE</item>
|
||||
<item>BEGIN</item>
|
||||
<item>BL</item>
|
||||
<item>C!</item>
|
||||
<item>C,</item>
|
||||
<item>C@</item>
|
||||
<item>CELL+</item>
|
||||
<item>CELLS</item>
|
||||
<item>CHAR</item>
|
||||
<item>CHAR+</item>
|
||||
<item>CHARS</item>
|
||||
<item>CONSTANT</item>
|
||||
<item>COUNT</item>
|
||||
<item>CR</item>
|
||||
<item>CREATE</item>
|
||||
<item>DECIMAL</item>
|
||||
<item>DEPTH</item>
|
||||
<item>DO</item>
|
||||
<item>DOES></item> <!-- DOES> -->
|
||||
<item>DROP</item>
|
||||
<item>DUP</item>
|
||||
<item>ELSE</item>
|
||||
<item>EMIT</item>
|
||||
<item>ENVIRONMENT?</item>
|
||||
<item>EVALUATE</item>
|
||||
<item>EXECUTE</item>
|
||||
<item>EXIT</item>
|
||||
<item>FILL</item>
|
||||
<item>FIND</item>
|
||||
<item>FM/MOD</item>
|
||||
<item>HERE</item>
|
||||
<item>HOLD</item>
|
||||
<item>I</item>
|
||||
<item>IF</item>
|
||||
<item>IMMEDIATE</item>
|
||||
<item>INVERT</item>
|
||||
<item>J</item>
|
||||
<item>KEY</item>
|
||||
<item>LEAVE</item>
|
||||
<item>LITERAL</item>
|
||||
<item>LOOP</item>
|
||||
<item>LSHIFT</item>
|
||||
<item>M*</item>
|
||||
<item>MAX</item>
|
||||
<item>MIN</item>
|
||||
<item>MOD</item>
|
||||
<item>MOVE</item>
|
||||
<item>NEGATE</item>
|
||||
<item>OR</item>
|
||||
<item>OVER</item>
|
||||
<item>POSTPONE</item>
|
||||
<item>QUIT</item>
|
||||
<item>R></item> <!-- R> -->
|
||||
<item>R@</item>
|
||||
<item>RECURSE</item>
|
||||
<item>REPEAT</item>
|
||||
<item>ROT</item>
|
||||
<item>RSHIFT</item>
|
||||
<item>S"</item> <!-- S" -->
|
||||
<item>S>D</item> <!-- S>D -->
|
||||
<item>SIGN</item>
|
||||
<item>SM/REM</item>
|
||||
<item>SOURCE</item>
|
||||
<item>SPACE</item>
|
||||
<item>SPACES</item>
|
||||
<item>STATE</item>
|
||||
<item>SWAP</item>
|
||||
<item>THEN</item>
|
||||
<item>TYPE</item>
|
||||
<item>U.</item>
|
||||
<item>U<</item> <!-- U< -->
|
||||
<item>UM*</item>
|
||||
<item>UM/MOD</item>
|
||||
<item>UNLOOP</item>
|
||||
<item>UNTIL</item>
|
||||
<item>VARIABLE</item>
|
||||
<item>WHILE</item>
|
||||
<item>WORD</item>
|
||||
<item>XOR</item>
|
||||
<item>[</item>
|
||||
<item>[']</item> <!-- ['] -->
|
||||
<item>[CHAR]</item>
|
||||
<item>]</item>
|
||||
</list>
|
||||
<list name="core-ext-keywords">
|
||||
<item>.(</item>
|
||||
<item>.R</item>
|
||||
<item>0<></item> <!-- 0<> -->
|
||||
<item>0></item> <!-- 0> -->
|
||||
<item>2>R</item> <!-- 2>R -->
|
||||
<item>2R></item> <!-- 2R> -->
|
||||
<item>2R@</item>
|
||||
<item>:NONAME</item>
|
||||
<item><></item> <!-- <> -->
|
||||
<item>?DO</item>
|
||||
<item>AGAIN</item>
|
||||
<item>C"</item> <!-- C" -->
|
||||
<item>CASE</item>
|
||||
<item>COMPILE,</item>
|
||||
<item>ENDCASE</item>
|
||||
<item>ENDOF</item>
|
||||
<item>ERASE</item>
|
||||
<item>FALSE</item>
|
||||
<item>HEX</item>
|
||||
<item>MARKER</item>
|
||||
<item>NIP</item>
|
||||
<item>OF</item>
|
||||
<item>PAD</item>
|
||||
<item>PARSE</item>
|
||||
<item>PICK</item>
|
||||
<item>REFILL</item>
|
||||
<item>RESTORE-INPUT</item>
|
||||
<item>ROLL</item>
|
||||
<item>SAVE-INPUT</item>
|
||||
<item>SOURCE-ID</item>
|
||||
<item>TO</item>
|
||||
<item>TRUE</item>
|
||||
<item>TUCK</item>
|
||||
<item>U.R</item>
|
||||
<item>U></item> <!-- U> -->
|
||||
<item>UNUSED</item>
|
||||
<item>VALUE</item>
|
||||
<item>WITHIN</item>
|
||||
<item>[COMPILE]</item>
|
||||
<item>\</item>
|
||||
</list>
|
||||
<list name="obsolete-core-ext-keywords">
|
||||
<item>#TIB</item>
|
||||
<item>CONVERT</item>
|
||||
<item>EXPECT</item>
|
||||
<item>QUERY</item>
|
||||
<item>SPAN</item>
|
||||
<item>TIB</item>
|
||||
</list>
|
||||
<list name="block-keywords">
|
||||
<item>BLK</item>
|
||||
<item>BLOCK</item>
|
||||
<item>BUFFER</item>
|
||||
<item>EVALUATE</item>
|
||||
<item>FLUSH</item>
|
||||
<item>LOAD</item>
|
||||
<item>SAVE-BUFFERS</item>
|
||||
<item>UPDATE</item>
|
||||
</list>
|
||||
<list name="block-ext-keywords">
|
||||
<item>EMPTY-BUFFERS</item>
|
||||
<item>LIST</item>
|
||||
<item>REFILL</item>
|
||||
<item>SCR</item>
|
||||
<item>THRU</item>
|
||||
<item>\</item>
|
||||
</list>
|
||||
<list name="double-keywords">
|
||||
<item>2CONSTANT</item>
|
||||
<item>2LITERAL</item>
|
||||
<item>2VARIABLE</item>
|
||||
<item>D+</item>
|
||||
<item>D-</item>
|
||||
<item>D.</item>
|
||||
<item>D.R</item>
|
||||
<item>D0<</item> <!-- D0< -->
|
||||
<item>D0=</item>
|
||||
<item>D2*</item>
|
||||
<item>D2/</item>
|
||||
<item>D<</item> <!-- D< -->
|
||||
<item>D=</item>
|
||||
<item>D>S</item> <!-- D>S -->
|
||||
<item>DABS</item>
|
||||
<item>DMAX</item>
|
||||
<item>DMIN</item>
|
||||
<item>DNEGATE</item>
|
||||
<item>M*/</item>
|
||||
<item>M+</item>
|
||||
</list>
|
||||
<list name="double-ext-keywords">
|
||||
<item>2ROT</item>
|
||||
<item>DU<</item> <!-- DU< -->
|
||||
</list>
|
||||
<list name="exception-keywords">
|
||||
<item>CATCH</item>
|
||||
<item>THROW</item>
|
||||
</list>
|
||||
<list name="exception-ext-keywords">
|
||||
<item>ABORT</item>
|
||||
<item>ABORT"</item> <!-- ABORT" -->
|
||||
</list>
|
||||
<list name="facility-keywords">
|
||||
<item>AT-XY</item>
|
||||
<item>KEY?</item>
|
||||
<item>PAGE</item>
|
||||
</list>
|
||||
<list name="facility-ext-keywords">
|
||||
<item>EKEY</item>
|
||||
<item>EKEY>CHAR</item> <!-- EKEY>CHAR -->
|
||||
<item>EKEY?</item>
|
||||
<item>EMIT?</item>
|
||||
<item>MS</item>
|
||||
<item>TIME&DATE</item> <!-- TIME&DATE -->
|
||||
</list>
|
||||
<list name="file-keywords">
|
||||
<item>(</item>
|
||||
<item>BIN</item>
|
||||
<item>CLOSE-FILE</item>
|
||||
<item>CREATE-FILE</item>
|
||||
<item>DELETE-FILE</item>
|
||||
<item>FILE-POSITION</item>
|
||||
<item>FILE-SIZE</item>
|
||||
<item>INCLUDE-FILE</item>
|
||||
<item>INCLUDED</item>
|
||||
<item>OPEN-FILE</item>
|
||||
<item>R/O</item>
|
||||
<item>R/W</item>
|
||||
<item>READ-FILE</item>
|
||||
<item>READ-LINE</item>
|
||||
<item>REPOSITION-FILE</item>
|
||||
<item>RESIZE-FILE</item>
|
||||
<item>S"</item> <!-- S" -->
|
||||
<item>SOURCE-ID</item>
|
||||
<item>W/O</item>
|
||||
<item>WRITE-FILE</item>
|
||||
<item>WRITE-LINE</item>
|
||||
</list>
|
||||
<list name="file-ext-keywords">
|
||||
<item>FILE-STATUS</item>
|
||||
<item>FLUSH-FILE</item>
|
||||
<item>REFILL</item>
|
||||
<item>RENAME-FILE</item>
|
||||
</list>
|
||||
<list name="floating-keywords">
|
||||
<item>>FLOAT</item> <!-- >FLOAT -->
|
||||
<item>D>F</item> <!-- D>F -->
|
||||
<item>F!</item>
|
||||
<item>F*</item>
|
||||
<item>F+</item>
|
||||
<item>F-</item>
|
||||
<item>F/</item>
|
||||
<item>F0<</item> <!-- F0< -->
|
||||
<item>F0=</item>
|
||||
<item>F<</item> <!-- F< -->
|
||||
<item>F>D</item> <!-- F>D -->
|
||||
<item>F@</item>
|
||||
<item>FALIGN</item>
|
||||
<item>FALIGNED</item>
|
||||
<item>FCONSTANT</item>
|
||||
<item>FDEPTH</item>
|
||||
<item>FDROP</item>
|
||||
<item>FDUP</item>
|
||||
<item>FLITERAL</item>
|
||||
<item>FLOAT+</item>
|
||||
<item>FLOATS</item>
|
||||
<item>FLOOR</item>
|
||||
<item>FMAX</item>
|
||||
<item>FMIN</item>
|
||||
<item>FNEGATE</item>
|
||||
<item>FOVER</item>
|
||||
<item>FROT</item>
|
||||
<item>FROUND</item>
|
||||
<item>FSWAP</item>
|
||||
<item>FVARIABLE</item>
|
||||
<item>REPRESENT</item>
|
||||
</list>
|
||||
<list name="floating-ext-keywords">
|
||||
<item>DF!</item>
|
||||
<item>DF@</item>
|
||||
<item>DFALIGN</item>
|
||||
<item>DFALIGNED</item>
|
||||
<item>DFLOAT+</item>
|
||||
<item>DFLOATS</item>
|
||||
<item>F**</item>
|
||||
<item>F.</item>
|
||||
<item>FABS</item>
|
||||
<item>FACOS</item>
|
||||
<item>FACOSH</item>
|
||||
<item>FALOG</item>
|
||||
<item>FASIN</item>
|
||||
<item>FASINH</item>
|
||||
<item>FATAN</item>
|
||||
<item>FATAN2</item>
|
||||
<item>FATANH</item>
|
||||
<item>FCOS</item>
|
||||
<item>FCOSH</item>
|
||||
<item>FE.</item>
|
||||
<item>FEXP</item>
|
||||
<item>FEXPM1</item>
|
||||
<item>FLN</item>
|
||||
<item>FLNP1</item>
|
||||
<item>FLOG</item>
|
||||
<item>FS.</item>
|
||||
<item>FSIN</item>
|
||||
<item>FSINCOS</item>
|
||||
<item>FSINH</item>
|
||||
<item>FSQRT</item>
|
||||
<item>FTAN</item>
|
||||
<item>FTANH</item>
|
||||
<item>F~</item>
|
||||
<item>PRECISION</item>
|
||||
<item>SET-PRECISION</item>
|
||||
<item>SF!</item>
|
||||
<item>SF@</item>
|
||||
<item>SFALIGN</item>
|
||||
<item>SFALIGNED</item>
|
||||
<item>SFLOAT+</item>
|
||||
<item>SFLOATS</item>
|
||||
</list>
|
||||
<list name="local-keywords">
|
||||
<item>(LOCAL)</item>
|
||||
<item>TO</item>
|
||||
</list>
|
||||
<list name="local-ext-keywords">
|
||||
<item>LOCALS|</item>
|
||||
</list>
|
||||
<list name="memory-keywords">
|
||||
<item>ALLOCATE</item>
|
||||
<item>FREE</item>
|
||||
<item>RESIZE</item>
|
||||
</list>
|
||||
<list name="tools-keywords">
|
||||
<item>.S</item>
|
||||
<item>?</item>
|
||||
<item>DUMP</item>
|
||||
<item>SEE</item>
|
||||
<item>WORDS</item>
|
||||
</list>
|
||||
<list name="tools-ext-keywords">
|
||||
<item>;CODE</item>
|
||||
<item>AHEAD</item>
|
||||
<item>ASSEMBLER</item>
|
||||
<item>BYE</item>
|
||||
<item>CODE</item>
|
||||
<item>CS-PICK</item>
|
||||
<item>CS-ROLL</item>
|
||||
<item>EDITOR</item>
|
||||
<item>STATE</item>
|
||||
<item>[ELSE]</item>
|
||||
<item>[IF]</item>
|
||||
<item>[THEN]</item>
|
||||
</list>
|
||||
<list name="obsolete-tools-ext-keywords">
|
||||
<item>FORGET</item>
|
||||
</list>
|
||||
<list name="search-keywords">
|
||||
<item>DEFINITIONS</item>
|
||||
<item>FIND</item>
|
||||
<item>FORTH-WORDLIST</item>
|
||||
<item>GET-CURRENT</item>
|
||||
<item>GET-ORDER</item>
|
||||
<item>SEARCH-WORDLIST</item>
|
||||
<item>SET-CURRENT</item>
|
||||
<item>SET-ORDER</item>
|
||||
<item>WORDLIST</item>
|
||||
</list>
|
||||
<list name="search-ext-keywords">
|
||||
<item>ALSO</item>
|
||||
<item>FORTH</item>
|
||||
<item>ONLY</item>
|
||||
<item>ORDER</item>
|
||||
<item>PREVIOUS</item>
|
||||
</list>
|
||||
<list name="string-keywords">
|
||||
<item>-TRAILING</item>
|
||||
<item>/STRING</item>
|
||||
<item>BLANK</item>
|
||||
<item>CMOVE</item>
|
||||
<item>CMOVE></item> <!-- CMOVE> -->
|
||||
<item>COMPARE</item>
|
||||
<item>SEARCH</item>
|
||||
<item>SLITERAL</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<DetectSpaces/>
|
||||
<RegExpr attribute="Core Keyword" context="Comment" String="(^|\s+)[\(]($|\s+)" beginRegion="comment"/>
|
||||
<RegExpr attribute="Core Keyword" context="Char" insensitive="true" String="(^|\s+)(CHAR|[[]CHAR[]])($|\s+)"/>
|
||||
<RegExpr attribute="Core Keyword" context="#stay" insensitive="true" String="(^|\s+)(BEGIN|DO|IF)($|\s+)" beginRegion="block"/>
|
||||
<RegExpr attribute="Core Keyword" context="#stay" insensitive="true" String="(^|\s+)([;]|LOOP|[+]LOOP|THEN|REPEAT|UNTIL)($|\s+)" endRegion="block"/>
|
||||
<RegExpr attribute="Core Keyword" context="Word" insensitive="true" String="(^|\s+)([:])($|\s+)" beginRegion="block"/>
|
||||
<RegExpr attribute="Core Keyword" context="Word" insensitive="true" String="(^|\s+)([']|CREATE|POSTPONE)($|\s+)"/>
|
||||
<RegExpr attribute="Core Keyword" context="#stay" insensitive="true" String="(^|\s+)ELSE($|\s+)" endRegion="block" beginRegion="block"/>
|
||||
<RegExpr attribute="Core Keyword" context="String" insensitive="true" String="(^|\s+)([.]"|ABORT"|S")($|\s+)"/>
|
||||
<RegExpr attribute="Core Keyword" context="Parse String" insensitive="true" String="(^|\s+)(WORD)($|\s+)"/>
|
||||
<RegExpr attribute="Core Keyword" context="Constant" insensitive="true" String="(^|\s+)(CONSTANT)($|\s+)"/>
|
||||
<RegExpr attribute="Core Keyword" context="Variable" insensitive="true" String="(^|\s+)(VARIABLE)($|\s+)"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="Single Comment" String="(^|\s+)[\\]($|\s+)"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="#stay" insensitive="true" String="(^|\s+)([?]DO|CASE|OF)($|\s+)" beginRegion="block"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="#stay" insensitive="true" String="(^|\s+)(AGAIN|ENDCASE|ENDOF)($|\s+)" endRegion="block"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="Word" insensitive="true" String="(^|\s+)(MARKER|[[]COMPILE[]])($|\s+)"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="String" insensitive="true" String="(^|\s+)(C")($|\s+)"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="Parse String" insensitive="true" String="(^|\s+)(PARSE)($|\s+)"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="Display String" String="(^|\s+)([\.][\(])($|\s+)"/>
|
||||
<RegExpr attribute="Core Ext Keyword" context="Variable" insensitive="true" String="(^|\s+)(TO|VALUE)($|\s+)"/>
|
||||
<RegExpr attribute="Double Keyword" context="Constant" insensitive="true" String="(^|\s+)(2CONSTANT)($|\s+)"/>
|
||||
<RegExpr attribute="Double Keyword" context="Variable" insensitive="true" String="(^|\s+)(2VARIABLE)($|\s+)"/>
|
||||
<RegExpr attribute="Floating Keyword" context="Constant" insensitive="true" String="(^|\s+)(FCONSTANT)($|\s+)"/>
|
||||
<RegExpr attribute="Floating Keyword" context="Variable" insensitive="true" String="(^|\s+)(FVARIABLE)($|\s+)"/>
|
||||
<RegExpr attribute="Local Ext Keyword" context="Local" insensitive="true" String="(^|\s+)(LOCALS\|)($|\s+)"/>
|
||||
<RegExpr attribute="Tools Keyword" context="Word" insensitive="true" String="(^|\s+)(SEE)($|\s+)"/>
|
||||
<RegExpr attribute="Tools Ext Keyword" context="Word" insensitive="true" String="(^|\s+)(CODE)($|\s+)"/>
|
||||
<RegExpr attribute="Obs Tools Ext Keyword" context="Word" insensitive="true" String="(^|\s+)(FORGET)($|\s+)"/>
|
||||
|
||||
<keyword attribute="Core Keyword" context="#stay" String="core-keywords"/>
|
||||
<keyword attribute="Core Ext Keyword" context="#stay" String="core-ext-keywords"/>
|
||||
<keyword attribute="Obs Core Ext Keyword" context="#stay" String="obsolete-core-ext-keywords"/>
|
||||
<keyword attribute="Block Keyword" context="#stay" String="block-keywords"/>
|
||||
<keyword attribute="Block Ext Keyword" context="#stay" String="block-ext-keywords"/>
|
||||
<keyword attribute="Double Keyword" context="#stay" String="double-keywords"/>
|
||||
<keyword attribute="Double Ext Keyword" context="#stay" String="double-ext-keywords"/>
|
||||
<keyword attribute="Exception Keyword" context="#stay" String="exception-keywords"/>
|
||||
<keyword attribute="Exception Ext Keyword" context="#stay" String="exception-ext-keywords"/>
|
||||
<keyword attribute="Facility Keyword" context="#stay" String="facility-keywords"/>
|
||||
<keyword attribute="Facility Ext Keyword" context="#stay" String="facility-ext-keywords"/>
|
||||
<keyword attribute="File Keyword" context="#stay" String="file-keywords"/>
|
||||
<keyword attribute="File Ext Keyword" context="#stay" String="file-ext-keywords"/>
|
||||
<keyword attribute="Floating Keyword" context="#stay" String="floating-keywords"/>
|
||||
<keyword attribute="Floating Ext Keyword" context="#stay" String="floating-ext-keywords"/>
|
||||
<keyword attribute="Local Keyword" context="#stay" String="local-keywords"/>
|
||||
<keyword attribute="Local Ext Keyword" context="#stay" String="local-ext-keywords"/>
|
||||
<keyword attribute="Memory Keyword" context="#stay" String="memory-keywords"/>
|
||||
<keyword attribute="Tools Keyword" context="#stay" String="tools-keywords"/>
|
||||
<keyword attribute="Tools Ext Keyword" context="#stay" String="tools-ext-keywords"/>
|
||||
<keyword attribute="Obs Tools Ext Keyword" context="#stay" String="obsolete-tools-ext-keywords"/>
|
||||
<keyword attribute="Search Keyword" context="#stay" String="search-keywords"/>
|
||||
<keyword attribute="Search Ext Keyword" context="#stay" String="search-ext-keywords"/>
|
||||
<keyword attribute="String Keyword" context="#stay" String="string-keywords"/>
|
||||
|
||||
<RegExpr attribute="Single Number" context="#stay" String="(^|\s+)([-]?[0-9]+)($|\s+)"/>
|
||||
<RegExpr attribute="Double Number" context="#stay" String="(^|\s+)([-]?[0-9]+[.][0-9]*)($|\s+)"/>
|
||||
<RegExpr attribute="Float" context="#stay" String="(^|\s+)([+]|[-])?([0-9]+[.]?[0-9]*)(E|e)([+]|[-])?([0-9]*)($|\s+)"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Comment">
|
||||
<DetectChar attribute="Core Keyword" context="#pop" char=")" endRegion="comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Single Comment">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#stay" name="Display String">
|
||||
<DetectChar attribute="Core Keyword" context="#pop" char=")"/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#stay" name="String">
|
||||
<DetectChar attribute="Core Keyword" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="Parse String">
|
||||
<DetectChar attribute="Core Keyword" context="#pop" char=" "/>
|
||||
</context>
|
||||
<context attribute="Word" lineEndContext="#pop" name="Word">
|
||||
<DetectChar attribute="Word" context="#pop" char=" "/>
|
||||
</context>
|
||||
<context attribute="Char" lineEndContext="#pop" name="Char">
|
||||
<DetectChar attribute="Char" context="#pop" char=" "/>
|
||||
</context>
|
||||
<context attribute="Constant" lineEndContext="#pop" name="Constant">
|
||||
<DetectChar attribute="Constant" context="#pop" char=" "/>
|
||||
</context>
|
||||
<context attribute="Variable" lineEndContext="#pop" name="Variable">
|
||||
<DetectChar attribute="Variable" context="#pop" char=" "/>
|
||||
</context>
|
||||
<context attribute="Local Variable" lineEndContext="#pop" name="Local">
|
||||
<DetectChar attribute="Local Ext Keyword" context="#pop" char="|"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Core Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Core Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Obs Core Ext Keyword" defStyleNum="dsWarning" bold="1" spellChecking="false"/> <!-- #ff0000 -->
|
||||
<itemData name="Block Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Block Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Double Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Double Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Exception Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Exception Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Facility Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Facility Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="File Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="File Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Floating Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Floating Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Local Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Local Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Memory Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Tools Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Tools Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Obs Tools Ext Keyword" defStyleNum="dsWarning" bold="1" spellChecking="false"/> <!-- #ff0000 -->
|
||||
<itemData name="Search Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Search Ext Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="String Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Single Number" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Double Number" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Word" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Char" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Constant" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Variable" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Local Variable" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="0" weakDeliminator="!£$%^&#'~|\(){}*+,-./=@:;<>"?[]"/>
|
||||
<comments>
|
||||
<comment name="multiLine" start="( " end=")" region="comment"/>
|
||||
<comment name="singleLine" start="\ "/>
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="ANSI C89" section="Sources"
|
||||
version="8" kateversion="5.0"
|
||||
indenter="cstyle"
|
||||
extensions="*.c;*.C;*.h"
|
||||
mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
|
||||
priority="2"
|
||||
author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>continue</item>
|
||||
<item>default</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>enum</item>
|
||||
<item>extern</item>
|
||||
<item>for</item>
|
||||
<item>goto</item>
|
||||
<item>if</item>
|
||||
<item>return</item>
|
||||
<item>sizeof</item>
|
||||
<item>struct</item>
|
||||
<item>switch</item>
|
||||
<item>typedef</item>
|
||||
<item>union</item>
|
||||
<item>while</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>auto</item>
|
||||
<item>char</item>
|
||||
<item>const</item>
|
||||
<item>double</item>
|
||||
<item>float</item>
|
||||
<item>int</item>
|
||||
<item>long</item>
|
||||
<item>register</item>
|
||||
<item>short</item>
|
||||
<item>signed</item>
|
||||
<item>static</item>
|
||||
<item>unsigned</item>
|
||||
<item>void</item>
|
||||
<item>volatile</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0" beginRegion="Outscoped" firstNonSpace="true" />
|
||||
<DetectChar attribute="Preprocessor" context="Preprocessor" char="#" firstNonSpace="true" />
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
<DetectIdentifier />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
|
||||
<Float attribute="Float" context="Float Suffixes"/>
|
||||
<HlCOct attribute="Octal" context="#stay"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<Int attribute="Decimal" context="Int Suffixes"/>
|
||||
<HlCChar attribute="Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<Detect2Chars attribute="Comment" context="comment" char="/" char1="*" beginRegion="blockcomment"/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>?[]|~^;"/>
|
||||
</context>
|
||||
<context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<AnyChar String="fF" attribute="Float" context="#pop"/>
|
||||
</context>
|
||||
<context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>
|
||||
<StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>
|
||||
<StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>
|
||||
<StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>
|
||||
<StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>
|
||||
<AnyChar attribute="Decimal" context="#pop" String="ULul"/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<LineContinue attribute="String" context="#stay"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="comment">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="blockcomment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
|
||||
<LineContinue attribute="Preprocessor" context="#stay"/>
|
||||
<RegExpr attribute="Preprocessor" context="#stay" String="define(?:[^\\]++|\\.)++"/>
|
||||
<RangeDetect attribute="Prep. Lib" context="#stay" char=""" char1="""/>
|
||||
<RangeDetect attribute="Prep. Lib" context="#stay" char="<" char1=">"/>
|
||||
<Detect2Chars attribute="Comment" context="comment" char="/" char1="*" beginRegion="blockcomment"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
|
||||
<Detect2Chars attribute="Comment" context="comment" char="/" char1="*" beginRegion="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true" />
|
||||
<RegExpr attribute="Preprocessor" context="#pop" String="#\s*(?:endif|else|elif)" endRegion="Outscoped" firstNonSpace="true" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
|
||||
<Detect2Chars attribute="Comment" context="comment" char="/" char1="*" beginRegion="Comment"/>
|
||||
<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true" />
|
||||
<RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="Outscoped" firstNonSpace="true" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Preprocessor" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Prep. Lib" defStyleNum="dsImport"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="multiLine" start="/*" end="*/" region="blockcomment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Andrzej Borucki <borucki.andrzej@gmail.com>
|
||||
SPDX-License-Identifier: MIT
|
||||
-->
|
||||
|
||||
|
||||
<language name="ANTLR"
|
||||
section="Sources"
|
||||
version="2"
|
||||
kateversion="5.62"
|
||||
extensions="*.g4"
|
||||
mimetype=""
|
||||
priority="1"
|
||||
author="Andrzej Borucki (borucki.andrzej@gmail.com)"
|
||||
license="MIT"
|
||||
>
|
||||
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>import</item>
|
||||
<item>fragment</item>
|
||||
<item>lexer</item>
|
||||
<item>parser</item>
|
||||
<item>grammar</item>
|
||||
<item>protected</item>
|
||||
<item>public</item>
|
||||
<item>private</item>
|
||||
<item>returns</item>
|
||||
<item>locals</item>
|
||||
<item>throws</item>
|
||||
<item>catch</item>
|
||||
<item>finally</item>
|
||||
<item>mode</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="match keywords" />
|
||||
<IncludeRules context="match attributes" />
|
||||
<IncludeRules context="match symbol" />
|
||||
<IncludeRules context="find literal" />
|
||||
<IncludeRules context="find charset" />
|
||||
<IncludeRules context="MatchComment" />
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
|
||||
<context name="match keywords" attribute="Normal Text" lineEndContext="#pop">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
</context>
|
||||
|
||||
<context name="find literal" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="match literal" char="'" />
|
||||
</context>
|
||||
|
||||
<context name="match literal" attribute="String" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="String" char="\" char1="\" />
|
||||
<Detect2Chars attribute="String" char="\" char1="'" />
|
||||
<DetectChar attribute="String" context="#pop" char="'" />
|
||||
</context>
|
||||
|
||||
<context name="find charset" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Charset" context="match charset" char="[" />
|
||||
</context>
|
||||
|
||||
<context name="match charset" attribute="Charset" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Charset" char="\" char1="\" />
|
||||
<Detect2Chars attribute="Charset" char="\" char1="]" />
|
||||
<DetectChar attribute="Charset" context="#pop" char="]" />
|
||||
</context>
|
||||
|
||||
<context name="match attributes" attribute="Normal Text" lineEndContext="#pop">
|
||||
<RegExpr attribute="Attribute" context="#stay" String="(options|tokens|channels)(?=([\s]*{))" />
|
||||
</context>
|
||||
|
||||
<context name="match symbol" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Symbol" context="#stay" char="-" char1=">"/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String="{};=,:|*?()+~"/>
|
||||
</context>
|
||||
|
||||
<context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<Detect2Chars attribute="Comment" context="#pop!Comment 1" char="/" char1="/" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Comment 2" char="/" char1="*" beginRegion="Comment" />
|
||||
</context>
|
||||
|
||||
<context name="Comment 1" attribute="Comment" lineEndContext="#pop">
|
||||
<LineContinue attribute="Comment" context="#stay"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="Comment 2" attribute="Comment" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="false"/>
|
||||
<itemData name="Charset" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" position="afterwhitespace" />
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment" />
|
||||
</comments>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
@@ -0,0 +1,633 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
|
||||
<!-- Changelog:
|
||||
|
||||
v1.1:
|
||||
- improved Syntax
|
||||
- added support for Apache 2.2 Directives
|
||||
- .ht* files may now automaticaly be highlighted
|
||||
|
||||
v1.0:
|
||||
- first Release
|
||||
-->
|
||||
|
||||
<language name="Apache Configuration" section="Configuration"
|
||||
version="6" kateversion="5.0"
|
||||
extensions="httpd.conf;httpd2.conf;apache.conf;apache2.conf;.htaccess*;.htpasswd*"
|
||||
mimetype=""
|
||||
author="Jan Janssen (medhefgo@googlemail.com)" license="LGPL">
|
||||
|
||||
<highlighting>
|
||||
<list name="String Directives">
|
||||
<item>AcceptFilter</item>
|
||||
<item>AccessFileName</item>
|
||||
<item>Action</item>
|
||||
<item>AddAlt</item>
|
||||
<item>AddAltByEncoding</item>
|
||||
<item>AddAltByType</item>
|
||||
<item>AddCharset</item>
|
||||
<item>AddDefaultCharset</item>
|
||||
<item>AddDescription</item>
|
||||
<item>AddEncoding</item>
|
||||
<item>AddHandler</item>
|
||||
<item>AddIcon</item>
|
||||
<item>AddIconByEncoding</item>
|
||||
<item>AddIconByType</item>
|
||||
<item>AddInputFilter</item>
|
||||
<item>AddLanguage</item>
|
||||
<item>AddModuleInfo</item>
|
||||
<item>AddOutputFilter</item>
|
||||
<item>AddOutputFilterByType</item>
|
||||
<item>AddType</item>
|
||||
<item>Alias</item>
|
||||
<item>AliasMatch</item>
|
||||
<item>Allow</item>
|
||||
<item>Anonymous</item>
|
||||
<item>AuthBasicProvider</item>
|
||||
<item>AuthDBMGroupFile</item>
|
||||
<item>AuthDBMUserFile</item>
|
||||
<item>AuthDigestDomain</item>
|
||||
<item>AuthDigestFile</item>
|
||||
<item>AuthDigestGroupFile</item>
|
||||
<item>AuthDigestNonceFormat</item>
|
||||
<item>AuthDigestProvider</item>
|
||||
<item>AuthGroupFile</item>
|
||||
<item>AuthLDAPBindDN</item>
|
||||
<item>AuthLDAPBindPassword</item>
|
||||
<item>AuthLDAPCharsetConfig</item>
|
||||
<item>AuthLDAPGroupAttribute</item>
|
||||
<item>AuthLDAPUrl</item>
|
||||
<item>AuthName</item>
|
||||
<item>AuthUserFile</item>
|
||||
<item>BrowserMatch</item>
|
||||
<item>BrowserMatchNoCase</item>
|
||||
<item>BS2000Account</item>
|
||||
<item>CacheDisable</item>
|
||||
<item>CacheEnable</item>
|
||||
<item>CacheFile</item>
|
||||
<item>CacheGcClean</item>
|
||||
<item>CacheGcUnused</item>
|
||||
<item>CacheRoot</item>
|
||||
<item>CGIMapExtension</item>
|
||||
<item>CharsetDefault</item>
|
||||
<item>CharsetOptions</item>
|
||||
<item>CharsetSourceEnc</item>
|
||||
<item>CookieDomain</item>
|
||||
<item>CookieLog</item>
|
||||
<item>CookieName</item>
|
||||
<item>CoreDumpDirectory</item>
|
||||
<item>CustomLog</item>
|
||||
<item>Dav</item>
|
||||
<item>DavGenericLockDB</item>
|
||||
<item>DavLockDB</item>
|
||||
<item>DBDParams</item>
|
||||
<item>DBDPrepareSQL</item>
|
||||
<item>DBDriver</item>
|
||||
<item>DefaultIcon</item>
|
||||
<item>DefaultLanguage</item>
|
||||
<item>DefaultType</item>
|
||||
<item>DeflateFilterNote</item>
|
||||
<item>Deny</item>
|
||||
<item>DirectoryIndex</item>
|
||||
<item>DocumentRoot</item>
|
||||
<item>ErrorDocument</item>
|
||||
<item>ErrorLog</item>
|
||||
<item>Example</item>
|
||||
<item>ExpiresByType</item>
|
||||
<item>ExpiresDefault</item>
|
||||
<item>ExtFilterDefine</item>
|
||||
<item>ExtFilterOptions</item>
|
||||
<item>FilterChain</item>
|
||||
<item>FilterDeclare</item>
|
||||
<item>FilterProtocol</item>
|
||||
<item>FilterProvider</item>
|
||||
<item>FilterTrace</item>
|
||||
<item>ForceType</item>
|
||||
<item>ForensicLog</item>
|
||||
<item>Group</item>
|
||||
<item>Header</item>
|
||||
<item>HeaderName</item>
|
||||
<item>ImapBase</item>
|
||||
<item>Include</item>
|
||||
<item>IndexIgnore</item>
|
||||
<item>IndexOptions</item>
|
||||
<item>IndexStyleSheet</item>
|
||||
<item>ISAPICacheFile</item>
|
||||
<item>LanguagePriority</item>
|
||||
<item>LDAPSharedCacheFile</item>
|
||||
<item>LDAPTrustedCA</item>
|
||||
<item>LDAPTrustedCAType</item>
|
||||
<item>LDAPTrustedClientCert</item>
|
||||
<item>LDAPTrustedGlobalCert</item>
|
||||
<item>Listen</item>
|
||||
<item>LoadFile</item>
|
||||
<item>LoadModule</item>
|
||||
<item>LockFile</item>
|
||||
<item>LogFormat</item>
|
||||
<item>MetaDir</item>
|
||||
<item>MetaSuffix</item>
|
||||
<item>MimeMagicFile</item>
|
||||
<item>MMapFile</item>
|
||||
<item>NameVirtualHost</item>
|
||||
<item>NoProxy</item>
|
||||
<item>NWSSLTrustedCerts</item>
|
||||
<item>NWSSLUpgradeable</item>
|
||||
<item>PassEnv</item>
|
||||
<item>PidFile</item>
|
||||
<item>ProxyBlock</item>
|
||||
<item>ProxyDomain</item>
|
||||
<item>ProxyPass</item>
|
||||
<item>ProxyPassReverse</item>
|
||||
<item>ProxyPassReverseCookieDomain</item>
|
||||
<item>ProxyPassReverseCookiePath</item>
|
||||
<item>ProxyRemote</item>
|
||||
<item>ProxyRemoteMatch</item>
|
||||
<item>ReadmeName</item>
|
||||
<item>Redirect</item>
|
||||
<item>RedirectMatch</item>
|
||||
<item>RedirectPermanent</item>
|
||||
<item>RedirectTemp</item>
|
||||
<item>RemoveCharset</item>
|
||||
<item>RemoveEncoding</item>
|
||||
<item>RemoveHandler</item>
|
||||
<item>RemoveInputFilter</item>
|
||||
<item>RemoveLanguage</item>
|
||||
<item>RemoveOutputFilter</item>
|
||||
<item>RemoveType</item>
|
||||
<item>RequestHeader</item>
|
||||
<item>Require</item>
|
||||
<item>RewriteBase</item>
|
||||
<item>RewriteCond</item>
|
||||
<item>RewriteLock</item>
|
||||
<item>RewriteLog</item>
|
||||
<item>RewriteMap</item>
|
||||
<item>RewriteRule</item>
|
||||
<item>ScoreBoardFile</item>
|
||||
<item>Script</item>
|
||||
<item>ScriptAlias</item>
|
||||
<item>ScriptAliasMatch</item>
|
||||
<item>ScriptLog</item>
|
||||
<item>ScriptSock</item>
|
||||
<item>SecureListen</item>
|
||||
<item>ServerAdmin</item>
|
||||
<item>ServerAlias</item>
|
||||
<item>ServerName</item>
|
||||
<item>ServerPath</item>
|
||||
<item>ServerRoot</item>
|
||||
<item>SetEnv</item>
|
||||
<item>SetEnvIf</item>
|
||||
<item>SetEnvIfNoCase</item>
|
||||
<item>SetHandler</item>
|
||||
<item>SetInputFilter</item>
|
||||
<item>SetOutputFilter</item>
|
||||
<item>SSIEndTag</item>
|
||||
<item>SSIErrorMsg</item>
|
||||
<item>SSIStartTag</item>
|
||||
<item>SSITimeFormat</item>
|
||||
<item>SSIUndefinedEcho</item>
|
||||
<item>SSLCACertificateFile</item>
|
||||
<item>SSLCACertificatePath</item>
|
||||
<item>SSLCADNRequestFile</item>
|
||||
<item>SSLCADNRequestPath</item>
|
||||
<item>SSLCARevocationFile</item>
|
||||
<item>SSLCARevocationPath</item>
|
||||
<item>SSLCertificateChainFile</item>
|
||||
<item>SSLCertificateFile</item>
|
||||
<item>SSLCertificateKeyFile</item>
|
||||
<item>SSLCipherSuite</item>
|
||||
<item>SSLCryptoDevice</item>
|
||||
<item>SSLHonorCiperOrder</item>
|
||||
<item>SSLPassPhraseDialog</item>
|
||||
<item>SSLProxyCACertificateFile</item>
|
||||
<item>SSLProxyCACertificatePath</item>
|
||||
<item>SSLProxyCARevocationFile</item>
|
||||
<item>SSLProxyCARevocationPath</item>
|
||||
<item>SSLProxyCipherSuite</item>
|
||||
<item>SSLProxyMachineCertificateFile</item>
|
||||
<item>SSLProxyMachineCertificatePath</item>
|
||||
<item>SSLProxyProtocol</item>
|
||||
<item>SSLRandomSeed</item>
|
||||
<item>SSLRequire</item>
|
||||
<item>SSLRequireSSL</item>
|
||||
<item>SSLUserName</item>
|
||||
<item>SuexecUserGroup</item>
|
||||
<item>TransferLog</item>
|
||||
<item>TypesConfig</item>
|
||||
<item>UnsetEnv</item>
|
||||
<item>User</item>
|
||||
<item>UserDir</item>
|
||||
<item>VirtualDocumentRoot</item>
|
||||
<item>VirtualDocumentRootIP</item>
|
||||
<item>VirtualScriptAlias</item>
|
||||
<item>VirtualScriptAliasIP</item>
|
||||
<item>Win32DisableAcceptEx</item>
|
||||
</list>
|
||||
|
||||
<list name="Integer Directives">
|
||||
<item>AllowCONNECT</item>
|
||||
<item>AssignUserID</item>
|
||||
<item>AuthDigestNonceLifetime</item>
|
||||
<item>AuthDigestShmemSize</item>
|
||||
<item>CacheDefaultExpire</item>
|
||||
<item>CacheDirLength</item>
|
||||
<item>CacheDirLevels</item>
|
||||
<item>CacheForceCompletion</item>
|
||||
<item>CacheGcDaily</item>
|
||||
<item>CacheGcInterval</item>
|
||||
<item>CacheGcMemUsage</item>
|
||||
<item>CacheLastModifiedFactor</item>
|
||||
<item>CacheMaxExpire</item>
|
||||
<item>CacheMaxFileSize</item>
|
||||
<item>CacheMinFileSize</item>
|
||||
<item>CacheSize</item>
|
||||
<item>CacheTimeMargin</item>
|
||||
<item>ChildPerUserID</item>
|
||||
<item>CookieExpires</item>
|
||||
<item>DavMinTimeout</item>
|
||||
<item>DBDExptime</item>
|
||||
<item>DBDKeep</item>
|
||||
<item>DBDMax</item>
|
||||
<item>DBDMin</item>
|
||||
<item>DBDPersist</item>
|
||||
<item>DeflateBufferSize</item>
|
||||
<item>DeflateCompressionLevel</item>
|
||||
<item>DeflateMemLevel</item>
|
||||
<item>DeflateWindowSize</item>
|
||||
<item>IdentityCheckTimeout</item>
|
||||
<item>ISAPIReadAheadBuffer</item>
|
||||
<item>KeepAliveTimeout</item>
|
||||
<item>LDAPCacheEntries</item>
|
||||
<item>LDAPCacheTTL</item>
|
||||
<item>LDAPConnectionTimeout</item>
|
||||
<item>LDAPOpCacheEntries</item>
|
||||
<item>LDAPOpCacheTTL</item>
|
||||
<item>LDAPSharedCacheSize</item>
|
||||
<item>LimitInternalRecursion</item>
|
||||
<item>LimitRequestBody</item>
|
||||
<item>LimitRequestFields</item>
|
||||
<item>LimitRequestFieldsize</item>
|
||||
<item>LimitRequestLine</item>
|
||||
<item>LimitXMLRequestBody</item>
|
||||
<item>ListenBacklog</item>
|
||||
<item>MaxClients</item>
|
||||
<item>MaxKeepAliveRequests</item>
|
||||
<item>MaxMemFree</item>
|
||||
<item>MaxRequestsPerChild</item>
|
||||
<item>MaxRequestsPerThread</item>
|
||||
<item>MaxSpareServers</item>
|
||||
<item>MaxSpareThreads</item>
|
||||
<item>MaxThreads</item>
|
||||
<item>MaxThreadsPerChild</item>
|
||||
<item>MCacheMaxObjectCount</item>
|
||||
<item>MCacheMaxObjectSize</item>
|
||||
<item>MCacheMaxStreamingBuffer</item>
|
||||
<item>MCacheMinObjectSize</item>
|
||||
<item>MCacheSize</item>
|
||||
<item>MinSpareServers</item>
|
||||
<item>MinSpareThreads</item>
|
||||
<item>NumServers</item>
|
||||
<item>ProxyIOBufferSize</item>
|
||||
<item>ProxyMaxForwards</item>
|
||||
<item>ProxyReceiveBufferSize</item>
|
||||
<item>ProxyTimeout</item>
|
||||
<item>RewriteLogLevel</item>
|
||||
<item>RLimitCPU</item>
|
||||
<item>RLimitMEM</item>
|
||||
<item>RLimitNPROC</item>
|
||||
<item>ScriptLogBuffer</item>
|
||||
<item>ScriptLogLength</item>
|
||||
<item>SendBufferSize</item>
|
||||
<item>ServerLimit</item>
|
||||
<item>SSLProxyVerifyDepth</item>
|
||||
<item>SSLSessionCacheTimeout</item>
|
||||
<item>SSLVerifyDepth</item>
|
||||
<item>StartServers</item>
|
||||
<item>StartThreads</item>
|
||||
<item>ThreadLimit</item>
|
||||
<item>ThreadsPerChild</item>
|
||||
<item>ThreadStackSize</item>
|
||||
<item>TimeOut</item>
|
||||
</list>
|
||||
|
||||
<list name="Alternative Directives">
|
||||
<item>AcceptMutex</item>
|
||||
<item>AcceptPathInfo</item>
|
||||
<item>AllowEncodedSlashes</item>
|
||||
<item>AllowOverride</item>
|
||||
<item>Anonymous_Authoritative</item>
|
||||
<item>Anonymous_LogEmail</item>
|
||||
<item>Anonymous_MustGiveEmail</item>
|
||||
<item>Anonymous_NoUserID</item>
|
||||
<item>Anonymous_VerifyEmail</item>
|
||||
<item>AuthAuthoritative</item>
|
||||
<item>AuthBasicAuthoritative</item>
|
||||
<item>AuthBasicProvider</item>
|
||||
<item>AuthDBMAuthoritative</item>
|
||||
<item>AuthDBMType</item>
|
||||
<item>AuthDefaultAuthoritative</item>
|
||||
<item>AuthDigestAlgorithm</item>
|
||||
<item>AuthDigestNcCheck</item>
|
||||
<item>AuthDigestQop</item>
|
||||
<item>AuthLDAPAuthoritative</item>
|
||||
<item>AuthLDAPCompareDNOnServer</item>
|
||||
<item>AuthLDAPDereferenceAliases</item>
|
||||
<item>AuthLDAPEnabled</item>
|
||||
<item>AuthLDAPFrontPageHack</item>
|
||||
<item>AuthLDAPGroupAttributeIsDN</item>
|
||||
<item>AuthLDAPRemoteUserIsDN</item>
|
||||
<item>AuthType</item>
|
||||
<item>AuthzDBMAuthoritative</item>
|
||||
<item>AuthzDBMType</item>
|
||||
<item>AuthzDefaultAuthoritative</item>
|
||||
<item>AuthzGroupFileAuthoritative</item>
|
||||
<item>AuthzLDAPAuthoritative</item>
|
||||
<item>AuthzOwnerAuthoritative</item>
|
||||
<item>AuthzUserAuthoritative</item>
|
||||
<item>BufferedLogs</item>
|
||||
<item>CacheExpiryCheck</item>
|
||||
<item>CacheIgnoreCacheControl</item>
|
||||
<item>CacheIgnoreHeaders</item>
|
||||
<item>CacheIgnoreNoLastMod</item>
|
||||
<item>CacheNegotiatedDocs</item>
|
||||
<item>CacheStoreNoStore</item>
|
||||
<item>CacheStorePrivate</item>
|
||||
<item>CheckSpelling</item>
|
||||
<item>ContentDigest</item>
|
||||
<item>CookieStyle</item>
|
||||
<item>CookieTracking</item>
|
||||
<item>CoreDumpDirectory</item>
|
||||
<item>CustomLog</item>
|
||||
<item>DavDepthInfinity</item>
|
||||
<item>DirectorySlash</item>
|
||||
<item>DumpIOInput</item>
|
||||
<item>DumpIOOutput</item>
|
||||
<item>EnableExceptionHook</item>
|
||||
<item>EnableMMAP</item>
|
||||
<item>EnableSendfile</item>
|
||||
<item>ExpiresActive</item>
|
||||
<item>ExtendedStatus</item>
|
||||
<item>FileETag</item>
|
||||
<item>ForceLanguagePriority</item>
|
||||
<item>HostnameLookups</item>
|
||||
<item>IdentityCheck</item>
|
||||
<item>ImapDefault</item>
|
||||
<item>ImapMenu</item>
|
||||
<item>IndexOrderDefault</item>
|
||||
<item>ISAPIAppendLogToErrors</item>
|
||||
<item>ISAPIAppendLogToQuery</item>
|
||||
<item>ISAPIFakeAsync</item>
|
||||
<item>ISAPILogNotSupported</item>
|
||||
<item>KeepAlive</item>
|
||||
<item>LDAPTrustedMode</item>
|
||||
<item>LDAPVerifyServerCert</item>
|
||||
<item>LogLevel</item>
|
||||
<item>MCacheRemovalAlgorithm</item>
|
||||
<item>MetaFiles</item>
|
||||
<item>ModMimeUsePathInfo</item>
|
||||
<item>MultiviewsMatch</item>
|
||||
<item>Options</item>
|
||||
<item>Order</item>
|
||||
<item>ProtocolEcho</item>
|
||||
<item>ProxyBadHeader</item>
|
||||
<item>ProxyErrorOverride</item>
|
||||
<item>ProxyPreserveHost</item>
|
||||
<item>ProxyRequests</item>
|
||||
<item>ProxyVia</item>
|
||||
<item>RewriteEngine</item>
|
||||
<item>RewriteOptions</item>
|
||||
<item>Satisfy</item>
|
||||
<item>ScriptInterpreterSource</item>
|
||||
<item>ServerSignature</item>
|
||||
<item>ServerTokens</item>
|
||||
<item>SSLEngine</item>
|
||||
<item>SSLHonorCipherOrder</item>
|
||||
<item>SSLMutex</item>
|
||||
<item>SSLOptions</item>
|
||||
<item>SSLProtocol</item>
|
||||
<item>SSLProxyEngine</item>
|
||||
<item>SSLProxyVerify</item>
|
||||
<item>SSLSessionCache</item>
|
||||
<item>SSLVerifyClient</item>
|
||||
<item>UseCanonicalName</item>
|
||||
<item>XBitHack</item>
|
||||
</list>
|
||||
|
||||
<list name="Alternates">
|
||||
<item>On</item>
|
||||
<item>Off</item>
|
||||
<item>Default</item>
|
||||
<item>flock</item>
|
||||
<item>fcntl</item>
|
||||
<item>posixsem</item>
|
||||
<item>pthread</item>
|
||||
<item>sysvsem</item>
|
||||
<item>All</item>
|
||||
<item>None</item>
|
||||
<item>AuthConfig</item>
|
||||
<item>FileInfo</item>
|
||||
<item>Indexes</item>
|
||||
<item>Limit</item>
|
||||
<item>Options</item>
|
||||
|
||||
<item>ExecCGI</item>
|
||||
<item>FollowSymLinks</item>
|
||||
<item>Includes</item>
|
||||
<item>IncludesNOEXEC</item>
|
||||
<item>Indexes</item>
|
||||
<item>MultiViews</item>
|
||||
<item>SymLinksIfOwnerMatch</item>
|
||||
<item>StdEnvVars</item>
|
||||
<item>CompatEnvVars</item>
|
||||
<item>ExportCertData</item>
|
||||
<item>FakeBasicAuth</item>
|
||||
<item>StrictRequire</item>
|
||||
<item>OptRenegotiate</item>
|
||||
|
||||
<item>SDBM</item>
|
||||
<item>GDBM</item>
|
||||
<item>NDBM</item>
|
||||
<item>DB</item>
|
||||
<item>MD5</item>
|
||||
<item>MD5-sess</item>
|
||||
<item>auth</item>
|
||||
<item>auth-int</item>
|
||||
<item>never</item>
|
||||
<item>searching</item>
|
||||
<item>finding</item>
|
||||
<item>always</item>
|
||||
<item>Basic</item>
|
||||
<item>Digest</item>
|
||||
<item>Connection</item>
|
||||
<item>Keep-Alive</item>
|
||||
<item>Proxy-Authenticate</item>
|
||||
<item>Proxy-Authorization</item>
|
||||
<item>TE</item>
|
||||
<item>Trailers</item>
|
||||
<item>Transfer-Encoding</item>
|
||||
<item>Upgrade</item>
|
||||
<item>Netscape</item>
|
||||
<item>Cookie</item>
|
||||
<item>Cookie2</item>
|
||||
<item>RFC2109</item>
|
||||
<item>RFC2965</item>
|
||||
<item>INode</item>
|
||||
<item>MTime</item>
|
||||
<item>Size</item>
|
||||
<item>Prefer</item>
|
||||
<item>Fallback</item>
|
||||
<item>Double</item>
|
||||
<item>error</item>
|
||||
<item>nocontent</item>
|
||||
<item>map</item>
|
||||
<item>referer</item>
|
||||
<item>formatted</item>
|
||||
<item>semiformatted</item>
|
||||
<item>unformatted</item>
|
||||
<item>Ascending</item>
|
||||
<item>Descending</item>
|
||||
<item>Name</item>
|
||||
<item>Date</item>
|
||||
<item>Size</item>
|
||||
<item>Description</item>
|
||||
<item>SSL</item>
|
||||
<item>TLS</item>
|
||||
<item>STARTTLS</item>
|
||||
<item>emerg</item>
|
||||
<item>alert</item>
|
||||
<item>crit</item>
|
||||
<item>error</item>
|
||||
<item>warn</item>
|
||||
<item>notice</item>
|
||||
<item>info</item>
|
||||
<item>debug</item>
|
||||
<item>LRU</item>
|
||||
<item>GDSF</item>
|
||||
<item>Any</item>
|
||||
<item>NegotiatedOnly</item>
|
||||
<item>Filters</item>
|
||||
<item>Handlers</item>
|
||||
<item>Deny,Allow</item>
|
||||
<item>Allow,Deny</item>
|
||||
<item>Mutual-failure</item>
|
||||
<item>IsError</item>
|
||||
<item>Ignore</item>
|
||||
<item>StartBody</item>
|
||||
<item>Full</item>
|
||||
<item>Block</item>
|
||||
<item>inherit</item>
|
||||
<item>Registry</item>
|
||||
<item>Registry-Strict</item>
|
||||
<item>Script</item>
|
||||
<item>EMail</item>
|
||||
<item>Major</item>
|
||||
<item>Minor</item>
|
||||
<item>Min</item>
|
||||
<item>Minimal</item>
|
||||
<item>Prod</item>
|
||||
<item>ProductOnly</item>
|
||||
<item>OS</item>
|
||||
<item>Full</item>
|
||||
<item>optional</item>
|
||||
<item>posixsem</item>
|
||||
<item>sysvsem</item>
|
||||
<item>sem</item>
|
||||
<item>pthread</item>
|
||||
<item>fcntl:</item>
|
||||
<item>flock:</item>
|
||||
<item>file:</item>
|
||||
<item>yes</item>
|
||||
<item>no</item>
|
||||
<item>SSLv2</item>
|
||||
<item>SSLv3</item>
|
||||
<item>TLSv1</item>
|
||||
<item>require</item>
|
||||
<item>optional_no_ca</item>
|
||||
<item>nonenotnull</item>
|
||||
<item>dbm:</item>
|
||||
<item>shm:</item>
|
||||
<item>dc:</item>
|
||||
<item>DNS</item>
|
||||
</list>
|
||||
|
||||
|
||||
<contexts>
|
||||
<context name="apache" attribute="Normal Text" lineEndContext="#stay">
|
||||
<keyword context="String Directives" String="String Directives" />
|
||||
<keyword attribute="Directives" context="Integer Directives" String="Integer Directives" />
|
||||
<keyword attribute="Directives" context="Alternative Directives" String="Alternative Directives" />
|
||||
|
||||
<RegExpr attribute="Container" context="Container Open" String="<\w+" beginRegion="Container" />
|
||||
<RegExpr attribute="Container" context="Container Close" String="</\w+" endRegion="Container" />
|
||||
<DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true" />
|
||||
</context>
|
||||
|
||||
<!-- Directives - separated after String, Integer and Alternatives -->
|
||||
<context name="String Directives" attribute="Directives" lineEndContext="#pop">
|
||||
<RegExpr attribute="String" context="#stay" String="[^#]*" />
|
||||
<IncludeRules context="Comment Alert" />
|
||||
</context>
|
||||
|
||||
<context name="Integer Directives" attribute="Other" lineEndContext="#pop">
|
||||
<Float attribute="Float" context="Integer Directives" />
|
||||
<Int attribute="Int" context="Integer Directives" />
|
||||
<IncludeRules context="Comment Alert" />
|
||||
</context>
|
||||
|
||||
<context name="Alternative Directives" attribute="Other" lineEndContext="#pop">
|
||||
<keyword attribute="Alternates" context="#stay" String="Alternates" />
|
||||
<AnyChar attribute="Alternates" context="#stay" String="-+" />
|
||||
<IncludeRules context="Comment Alert" />
|
||||
</context>
|
||||
|
||||
<!-- Other -->
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<!-- Container -->
|
||||
<context name="Container Open" attribute="Container" lineEndContext="#pop">
|
||||
<DetectChar attribute="Container" context="Alert" char=">" />
|
||||
<RegExpr attribute="Attribute" context="#stay" String="[^#>]*" />
|
||||
<IncludeRules context="Comment Alert" />
|
||||
</context>
|
||||
|
||||
<context name="Container Close" attribute="Container" lineEndContext="#pop">
|
||||
<DetectChar attribute="Container" context="Alert" char=">" />
|
||||
</context>
|
||||
|
||||
<!-- Alerts -->
|
||||
<context name="Comment Alert" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Alert" context="Alert" char="#" />
|
||||
</context>
|
||||
|
||||
<context name="Alert" attribute="Alert" lineEndContext="#pop" />
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Directives" defStyleNum="dsExtension" bold="true" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
<itemData name="Float" defStyleNum="dsFloat" />
|
||||
<itemData name="Int" defStyleNum="dsFloat" />
|
||||
<itemData name="Alternates" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Alert" defStyleNum="dsError" />
|
||||
<itemData name="Container" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Other" defStyleNum="dsChar" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" weakDeliminator="," />
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 1; indent-width 1; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,640 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!-- alphabetic -->
|
||||
<!ENTITY alp "a-zA-Z">
|
||||
<!-- alphanumeric -->
|
||||
<!ENTITY aln "&alp;0-9">
|
||||
<!ENTITY id "\w[\w-]+">
|
||||
<!-- percent symbol, needs to be encoded inside an entity definition -->
|
||||
<!ENTITY perc "%">
|
||||
|
||||
<!ENTITY admonition_names "CAUTION|IMPORTANT|NOTE|TIP|WARNING">
|
||||
|
||||
<!-- regular expression parts to identify anchors -->
|
||||
<!ENTITY anchor_mid "&id;(?:,.+?)?">
|
||||
<!ENTITY anchor_phrase "#\S(?:.*?\S)?#">
|
||||
|
||||
<!-- block delimiters -->
|
||||
<!ENTITY block_dels_comment "/{4,}">
|
||||
<!ENTITY block_dels_normal "={4,}|_{4,}|\*{4,}|-{2}|"{2}">
|
||||
<!ENTITY block_dels_pass "\+{4,}">
|
||||
<!ENTITY block_dels_verbatim "`{3}|-{4,}|\.{4,}">
|
||||
<!-- postfix/trailing part of block name -->
|
||||
<!ENTITY block_name_post "(?:[#&perc;].+)?\s*(?:,.*)?\]\s*$">
|
||||
<!-- block end delimiter, dynamic matching: "^%1\s*$" -->
|
||||
<!ENTITY block_end_del "^&perc;1\s*$">
|
||||
|
||||
<!-- unicode character reference, decimal and hexadecimal -->
|
||||
<!ENTITY char_ref "&#(?:\d{2,4}|x[\da-fA-F]{2,4});">
|
||||
|
||||
<!-- email - inline -->
|
||||
<!ENTITY email "\w[\w.&perc;+-]*@[&aln;][&aln;.-]*\.[&alp;]{2,4}\b">
|
||||
|
||||
<!-- link macro and mailto: -->
|
||||
<!ENTITY link_mailto "(?:link|mailto):[^:\s\[][^\s\[]*\[(?:\]|.*?[^\\]\])">
|
||||
|
||||
<!-- macro -->
|
||||
<!ENTITY macro "(?:anchor|xref):&id;\[.*?\]|(?:btn|footnote(?:ref)?|kbd):\[.*?\]|pass:\w*\[.*?\]|(?:icon|image|menu):[^:].*?\[.*?\]|toc::\[\]">
|
||||
|
||||
<!ENTITY list_marker "(?:\S.+::(?=\s|$)|(?:(?:\.+|\d+\.)|(?:-|\*+)(?:\s+\[[*x ]\])?)(?=\s+\S))">
|
||||
|
||||
<!ENTITY table_option_delimiter "(?:(?:\d*\.)?\d+\+|\d+\*)?(?:[<>^]?\.?[<>^])?[adehlmsv]?\|">
|
||||
|
||||
<!-- parts to build regular expressions to identify quoted (formatted) text
|
||||
E.g. emphasized, marked, strong. -->
|
||||
<!-- prefix/leading part -->
|
||||
<!ENTITY quoted_pre "(?<=^|[^\w;:}])">
|
||||
<!ENTITY quoted_pre_pass "(?<=^|\W)">
|
||||
<!-- central part -->
|
||||
<!ENTITY quoted "\S(?:.*?\S)??">
|
||||
<!-- postfix/trailing part -->
|
||||
<!ENTITY quoted_post "(?=\W|$)">
|
||||
]>
|
||||
<language author="Andreas Gratzer" extensions="*.ad;*.adoc;*.asciidoc" kateversion="5.0" mimetype="text/asciidoc" name="AsciiDoc" license="MIT" section="Markup" version="9">
|
||||
<highlighting>
|
||||
<list name="macro">
|
||||
<item>anchor</item>
|
||||
<item>btn</item>
|
||||
<item>footnote</item>
|
||||
<item>footnoteref</item>
|
||||
<item>icon</item>
|
||||
<item>image</item>
|
||||
<item>indexterm</item>
|
||||
<item>indexterm2</item>
|
||||
<item>kbd</item>
|
||||
<item>menu</item>
|
||||
<item>pass</item>
|
||||
<item>toc</item>
|
||||
<item>xref</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="start" attribute="Normal" lineEndContext="#stay" fallthrough="1" fallthroughContext="R section block">
|
||||
<!-- section title level 0 to 5 -->
|
||||
<RegExpr String="^(?:={1,6}|#{1,6})\s+(?=\S)" lookAhead="1" context="dispatch section main title" column="0"/>
|
||||
<IncludeRules context="R section inline"/>
|
||||
</context>
|
||||
|
||||
<!-- attribute value definition, may span multiple lines -->
|
||||
<context name="attribute value" attribute="Normal" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<!-- line with continuation -->
|
||||
<RegExpr String=".*?(?=\s+(?:\+\s+)?\\\s*$)" attribute="Attribute Value" context="continuation"/>
|
||||
<!-- line without continuation, terminates value definition -->
|
||||
<RegExpr String=".*" attribute="Attribute Value" context="#pop"/>
|
||||
</context>
|
||||
<!-- inline attribute value definition -->
|
||||
<context name="attribute value inline" attribute="Attribute Value" lineEndContext="#stay">
|
||||
<!-- the leading `:` is part of the definition syntax and should not be highlighted as value -->
|
||||
<DetectChar char=":" attribute="Attribute" context="attribute value inline L2"/>
|
||||
<DetectChar char="}" attribute="Attribute" context="#pop"/>
|
||||
</context>
|
||||
<context name="attribute value inline L2" attribute="Attribute Value" lineEndContext="#stay">
|
||||
<DetectChar char="}" attribute="Attribute" context="#pop#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- backlash, may function as an escape -->
|
||||
<context name="backlash" attribute="Normal" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<!-- attribute usage
|
||||
formatted/quoted text
|
||||
replacement of apostrophe
|
||||
table separator (default)
|
||||
anchor, consuming leading char will make anchor matches fail
|
||||
cross reference
|
||||
indexterm, consuming leading char will make matches fail
|
||||
-->
|
||||
<!-- replacement (besides apostrophe -->
|
||||
<Detect2Chars char="<" char1="-" attribute="Normal" context="#pop"/>
|
||||
<Detect2Chars char="<" char1="=" attribute="Normal" context="#pop"/>
|
||||
<AnyChar String="_#`+*~^'|{[<(" attribute="Normal" context="#pop"/>
|
||||
<Detect2Chars char="-" char1="-" attribute="Normal" context="#pop"/>
|
||||
<Detect2Chars char="-" char1=">" attribute="Normal" context="#pop"/>
|
||||
<Detect2Chars char="=" char1=">" attribute="Normal" context="#pop"/>
|
||||
<StringDetect String="..." attribute="Normal" context="#pop"/>
|
||||
<!-- email - inline, needs to be ordered after mailto: -->
|
||||
<!-- link and mailto macros, note that ftp, irc, http(s) don't match with leading `\` anyway -->
|
||||
<RegExpr String="&email;|&link_mailto;|&char_ref;" attribute="Normal" context="#pop"/>
|
||||
<!-- macro -->
|
||||
<keyword String="macro" attribute="Normal" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="block title" attribute="Block Title" lineEndContext="#pop">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="comment" attribute="Comment" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<RegExpr String="^(&block_dels_comment;)\s*$" attribute="Comment" context="#pop!comment delimited" beginRegion="comment" column="0"/>
|
||||
<IncludeRules context="R anchor"/>
|
||||
<IncludeRules context="R block title"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
<context name="comment delimited" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<RegExpr String="&block_end_del;" dynamic="true" attribute="Comment" context="#pop" endRegion="comment" column="0"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
<context name="comment single-line" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
|
||||
<!-- continuation, both for normal text and attribute value definition
|
||||
The allowed pattern must already by validated.
|
||||
Here only the possible characters are highlighted. -->
|
||||
<context name="continuation" attribute="Normal" lineEndContext="#pop">
|
||||
<AnyChar String="+\" attribute="Control"/>
|
||||
</context>
|
||||
|
||||
<context name="main title" attribute="Main Title" lineEndContext="#pop!section L0">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="normal" attribute="Normal" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<RegExpr String="^(-{2}|&block_dels_normal;)\s*$" attribute="Delimiter" context="#pop!normal delimited" beginRegion="block" column="0"/>
|
||||
<IncludeRules context="R block title"/>
|
||||
<!-- shared rules includes anchor rules, so we do not need to include that separately -->
|
||||
<IncludeRules context="R shared"/>
|
||||
<IncludeRules context="R normal"/>
|
||||
</context>
|
||||
<context name="normal delimited" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="&block_end_del;" dynamic="true" attribute="Delimiter" context="#pop" endRegion="block" column="0"/>
|
||||
<IncludeRules context="R admonition"/>
|
||||
<IncludeRules context="R block"/>
|
||||
<!-- shared rules includes anchor rules, so we do not need to include that separately -->
|
||||
<IncludeRules context="R shared"/>
|
||||
<IncludeRules context="R normal"/>
|
||||
</context>
|
||||
|
||||
<context name="passthrough" attribute="Passthrough" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<DetectSpaces attribute="Passthrough"/>
|
||||
<IncludeRules context="R include"/>
|
||||
<DetectIdentifier attribute="Passthrough"/>
|
||||
<RegExpr String="^(&block_dels_pass;)\s*$" attribute="Delimiter" context="#pop!passthrough delimited" beginRegion="block" column="0"/>
|
||||
<IncludeRules context="R anchor"/>
|
||||
<IncludeRules context="R block title"/>
|
||||
</context>
|
||||
<context name="passthrough delimited" attribute="Passthrough" lineEndContext="#stay">
|
||||
<RegExpr String="&block_end_del;" dynamic="true" attribute="Delimiter" context="#pop" endRegion="block" column="0"/>
|
||||
<IncludeRules context="R include"/>
|
||||
</context>
|
||||
|
||||
<context name="dispatch section main title" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="dispatch section title L1-5"/>
|
||||
<!-- main title, first level 0 section title -->
|
||||
<AnyChar String="=#" attribute="Main Title" context="#pop!main title" beginRegion="section" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="dispatch section title L0-5" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="dispatch section title L1-5"/>
|
||||
<AnyChar String="=#" attribute="Section Title" context="#pop!section title L0" beginRegion="section" endRegion="section" column="0"/>
|
||||
</context>
|
||||
<context name="dispatch section title L1-5" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="dispatch section title L2-5"/>
|
||||
<Detect2Chars char="=" char1="=" attribute="Section Title" context="#pop!section title L1" beginRegion="section" column="0"/>
|
||||
<Detect2Chars char="#" char1="#" attribute="Section Title" context="#pop!section title L1" beginRegion="section" column="0"/>
|
||||
</context>
|
||||
<context name="dispatch section title L2-5" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="dispatch section title L3-5"/>
|
||||
<StringDetect String="===" attribute="Section Title" context="#pop!section title L2" beginRegion="section" column="0"/>
|
||||
<StringDetect String="###" attribute="Section Title" context="#pop!section title L2" beginRegion="section" column="0"/>
|
||||
</context>
|
||||
<context name="dispatch section title L3-5" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="dispatch section title L4-5"/>
|
||||
<StringDetect String="====" attribute="Section Title" context="#pop!section title L3" beginRegion="section" column="0"/>
|
||||
<StringDetect String="####" attribute="Section Title" context="#pop!section title L3" beginRegion="section" column="0"/>
|
||||
</context>
|
||||
<context name="dispatch section title L4-5" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="dispatch section title L5"/>
|
||||
<StringDetect String="=====" attribute="Section Title" context="#pop!section title L4" beginRegion="section" column="0"/>
|
||||
<StringDetect String="#####" attribute="Section Title" context="#pop!section title L4" beginRegion="section" column="0"/>
|
||||
</context>
|
||||
<context name="dispatch section title L5" attribute="Normal" lineEndContext="#stay">
|
||||
<StringDetect String="======" attribute="Section Title" context="#pop!section title L5" beginRegion="section" column="0"/>
|
||||
<StringDetect String="######" attribute="Section Title" context="#pop!section title L5" beginRegion="section" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="section L0" attribute="Normal" lineEndContext="#stay" fallthrough="1" fallthroughContext="R section block">
|
||||
<RegExpr String="^(?:={1,6}|#{1,6})\s+(?=\S)" lookAhead="1" context="dispatch section title L0-5" column="0"/>
|
||||
<IncludeRules context="section L5"/>
|
||||
</context>
|
||||
|
||||
<context name="section L1" attribute="Normal" lineEndContext="#stay" fallthrough="1" fallthroughContext="R section block">
|
||||
<RegExpr String="^(?:={3,6}|#{3,6})\s+(?=\S)" lookAhead="1" context="dispatch section title L2-5" column="0"/>
|
||||
<IncludeRules context="section L5"/>
|
||||
</context>
|
||||
|
||||
<context name="section L2" attribute="Normal" lineEndContext="#stay" fallthrough="1" fallthroughContext="R section block">
|
||||
<RegExpr String="^(?:={4,6}|#{4,6})\s+(?=\S)" lookAhead="1" context="dispatch section title L3-5" column="0"/>
|
||||
<IncludeRules context="section L5"/>
|
||||
</context>
|
||||
|
||||
<context name="section L3" attribute="Normal" lineEndContext="#stay" fallthrough="1" fallthroughContext="R section block">
|
||||
<RegExpr String="^(?:={5,6}|#{5,6})\s+(?=\S)" lookAhead="1" context="dispatch section title L4-5" column="0"/>
|
||||
<IncludeRules context="section L5"/>
|
||||
</context>
|
||||
|
||||
<context name="section L4" attribute="Normal" lineEndContext="#stay" fallthrough="1" fallthroughContext="R section block">
|
||||
<RegExpr String="^(?:={6}|#{6})\s+(?=\S)" lookAhead="1" context="dispatch section title L5" column="0"/>
|
||||
<IncludeRules context="section L5"/>
|
||||
</context>
|
||||
|
||||
<context name="section L5" attribute="Normal" lineEndContext="#stay" fallthrough="1" fallthroughContext="R section block">
|
||||
<RegExpr String="^(?:={1,6}|#{1,6})\s+\S" lookAhead="1" context="#pop" endRegion="section" column="0"/>
|
||||
<IncludeRules context="R section inline"/>
|
||||
</context>
|
||||
|
||||
<context name="section title L0" attribute="Section Title" lineEndContext="#pop">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="section title L1" attribute="Section Title" lineEndContext="#pop!section L1">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="section title L2" attribute="Section Title" lineEndContext="#pop!section L2">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="section title L3" attribute="Section Title" lineEndContext="#pop!section L3">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="section title L4" attribute="Section Title" lineEndContext="#pop!section L4">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="section title L5" attribute="Section Title" lineEndContext="#pop!section L5">
|
||||
<IncludeRules context="R title"/>
|
||||
</context>
|
||||
|
||||
<context name="table" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="&block_end_del;" dynamic="true" attribute="Delimiter" context="#pop" endRegion="block" column="0"/>
|
||||
<!-- `|` with prefix for alignment, style etc. -->
|
||||
<RegExpr String="(?<=^|\s)&table_option_delimiter;" attribute="Delimiter"/>
|
||||
<!-- simple `|` without alignment, style etc. -->
|
||||
<DetectChar char="|" attribute="Delimiter"/>
|
||||
<IncludeRules context="R shared"/>
|
||||
<IncludeRules context="R normal"/>
|
||||
</context>
|
||||
|
||||
<context name="verbatim" attribute="Verbatim" lineEndContext="#stay">
|
||||
<RegExpr String="^(-{2}|&block_dels_verbatim;)\s*$" attribute="Delimiter" context="#pop!verbatim delimited" beginRegion="block" column="0"/>
|
||||
<IncludeRules context="R anchor"/>
|
||||
<RegExpr String="^(\[\w+[^,\]]*(,[^,\]]*)*\]\s*)+$" attribute="Preprocessor" column="0"/>
|
||||
<IncludeRules context="R block title"/>
|
||||
<IncludeRules context="R comment"/>
|
||||
<IncludeRules context="R include"/>
|
||||
<RegExpr String="^.*" attribute="Verbatim" context="#pop!verbatim paragraph" column="0"/>
|
||||
</context>
|
||||
<context name="verbatim delimited" attribute="Verbatim" lineEndContext="#stay">
|
||||
<RegExpr String="&block_end_del;" dynamic="true" attribute="Delimiter" context="#pop" endRegion="block" column="0"/>
|
||||
<IncludeRules context="R include"/>
|
||||
</context>
|
||||
<context name="verbatim paragraph" attribute="Verbatim" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<IncludeRules context="R include"/>
|
||||
</context>
|
||||
|
||||
<!-- contexts to be used for IncludeRules only -->
|
||||
|
||||
<context name="R normal" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- Regex which allows to quickly consume text that is not
|
||||
- macro
|
||||
- continuation
|
||||
- index term
|
||||
- link
|
||||
- replacement
|
||||
- preprocessor
|
||||
- formatted text
|
||||
- table delimiter
|
||||
|
||||
maanchor:anchor-id[Macro Anchor]
|
||||
^ Normal
|
||||
^ Macro
|
||||
|
||||
bla__bla__bla
|
||||
^ Normal
|
||||
^ Emphasized
|
||||
^ Normal
|
||||
|
||||
For some reason, Asciidoctor recognizes emails with leading : or / but does not render them as link
|
||||
|
||||
/example@mail.com
|
||||
^ Normal
|
||||
|
||||
example@mail.com
|
||||
^ Link
|
||||
-->
|
||||
<RegExpr String="([:/]&email;|(?!¯o;|link:|mailto:|(?:ftp|https?|irc)://|&char_ref;|indexterm2?:\[.+?\]|[\\+|\[{~^]|__|##|\([CR]\)|\(TM\)|\.\.\.|<[-=<]|--|->|=>|``\*?_?|\*\*_?|\(\(|\s+[[+]|\s&table_option_delimiter;|(?<=[^&alp;;:}])_|"ed_pre;(`\*?_?|\*_?|#)|(?<=[&alp;])'(?=[&alp;])|&email;).)++" attribute="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="R admonition" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- admonition - simple form, block form is part of block rules -->
|
||||
<RegExpr String="^(?:&admonition_names;):(?=\s+\S)" attribute="Preprocessor" context="normal" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R anchor" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- shorthand form at line start -->
|
||||
<!-- bibliographic anchor -->
|
||||
<!-- normal form -->
|
||||
<!-- shorthand form inline -->
|
||||
<RegExpr String="^\[#&anchor_mid;\](?:&anchor_phrase;|\s*$)|\[{3}&anchor_mid;\]{3}|\[{2}&anchor_mid;\]{2}|(?<=\S\s)\s*\[\s*#&anchor_mid;\s*\]&anchor_phrase;" attribute="Anchor"/>
|
||||
</context>
|
||||
|
||||
<context name="R attribute" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- attribute definition without value / unset attribute -->
|
||||
<RegExpr String="^:!?&id;!?:$" attribute="Attribute" column="0"/>
|
||||
<!-- attribute definition with value -->
|
||||
<RegExpr String="^:!?&id;!?:\s(?=\S)" attribute="Attribute" context="attribute value" column="0"/>
|
||||
<!-- attribute inline definition -->
|
||||
<RegExpr String="\{set:&id;(?=(?::.*)?\})" minimal="true" attribute="Attribute" context="attribute value inline"/>
|
||||
<IncludeRules context="R attribute usage"/>
|
||||
</context>
|
||||
|
||||
<context name="R attribute usage" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="\{&id;\}" attribute="Attribute"/>
|
||||
</context>
|
||||
|
||||
<context name="R block" attribute="Normal" lineEndContext="#stay">
|
||||
<IncludeRules context="R block title"/>
|
||||
<IncludeRules context="R block without title"/>
|
||||
</context>
|
||||
|
||||
<context name="R block without title" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- name matching -->
|
||||
<RegExpr String="^\[(?:&admonition_names;)&block_name_post;|^\[(?:example|quote|sidebar|verse)&block_name_post;" attribute="Preprocessor" context="normal" column="0"/>
|
||||
<RegExpr String="^\[(?:pass|stem)&block_name_post;" attribute="Preprocessor" context="passthrough" column="0"/>
|
||||
<RegExpr String="^\[(?:listing|literal|source)&block_name_post;" attribute="Preprocessor" context="verbatim" column="0"/>
|
||||
|
||||
<!-- delimiter matching -->
|
||||
<RegExpr String="^(&block_dels_normal;)\s*$" attribute="Delimiter" context="normal delimited" beginRegion="block" column="0"/>
|
||||
<RegExpr String="^(&block_dels_pass;)\s*$" attribute="Delimiter" context="passthrough delimited" beginRegion="block" column="0"/>
|
||||
<RegExpr String="^(\|={3,})\s*$" attribute="Delimiter" context="table" beginRegion="block" column="0"/>
|
||||
<RegExpr String="^(&block_dels_verbatim;)\s*$" attribute="Delimiter" context="verbatim delimited" beginRegion="block" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R block title" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- not more than 3 leading dots followed by a non-dot, otherwise it would conflict with the delimited literal block -->
|
||||
<RegExpr String="^\.{1,3}(?=[^\.\s])" attribute="Block Title" context="block title" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R comment" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- comment - multi-line, named block -->
|
||||
<RegExpr String="^\[comment&block_name_post;" attribute="Preprocessor" context="comment" column="0"/>
|
||||
<!-- comment - multi-line, delimited block -->
|
||||
<RegExpr String="^(&block_dels_comment;)\s*$" attribute="Comment" context="comment delimited" beginRegion="comment" column="0"/>
|
||||
<!-- comment - single line -->
|
||||
<RegExpr String="^/{2}(?:[^/]|$)" attribute="Comment" context="comment single-line" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R formatted" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- custom style, e.g. [underline]#underlined text# -->
|
||||
<RegExpr String="(?<=^|\W)\[[^\]]+?\]([#_`*]{1,2})"ed;\g1"ed_post;" attribute="Preprocessor"/>
|
||||
|
||||
<!-- combined highlighting must be ordered before simple highlighting -->
|
||||
|
||||
<!-- emphasized monospaced strong unconstrained - must be ordered before constrained -->
|
||||
<!-- emphasized monospaced strong - constrained must be ordered after unconstrained -->
|
||||
<RegExpr String="`{2}\*_.*?_\*`{2}|"ed_pre;`\*_"ed;_\*`"ed_post;" attribute="Emphasized Monospaced Strong"/>
|
||||
|
||||
<!-- emphasized strong unconstrained - must be ordered before constrained -->
|
||||
<!-- emphasized strong constrained - must be ordered after unconstrained -->
|
||||
<RegExpr String="\*{2}_.*?_\*{2}|"ed_pre;\*_"ed;_\*"ed_post;" attribute="Emphasized Strong"/>
|
||||
|
||||
<!-- monospaced strong unconstrained - must be ordered before constrained -->
|
||||
<!-- monospaced strong constrained - must be ordered after unconstrained -->
|
||||
<RegExpr String="`{2}\*.*?\*`{2}|"ed_pre;`\*"ed;\*`"ed_post;" attribute="Monospaced Strong"/>
|
||||
|
||||
<!-- emphasized monospaced unconstrained - must be ordered before constrained -->
|
||||
<!-- emphasized monospaced constrained - must be ordered after unconstrained -->
|
||||
<RegExpr String="`{2}_.*?_`{2}|"ed_pre;`_"ed;_`"ed_post;" attribute="Emphasized Monospaced"/>
|
||||
|
||||
<!-- strong unconstrained - must be ordered before constrained -->
|
||||
<!-- strong constrained - must be ordered after unconstrained -->
|
||||
<RegExpr String="\*{2}[^*].*?\*{2}|"ed_pre;\*"ed;\*"ed_post;" attribute="Strong"/>
|
||||
|
||||
<!-- emphasized unconstrained - must be ordered before constrained -->
|
||||
<!-- emphasized constrained - must be ordered after unconstrained
|
||||
Can't use "ed_pre; as that excludes \w which excludes `_` too. -->
|
||||
<RegExpr String="_{2}[^_].*?_{2}|(?<=^|[^&alp;;:}])_"ed;_"ed_post;" attribute="Emphasized"/>
|
||||
|
||||
<IncludeRules context="R marked"/>
|
||||
<IncludeRules context="R monospaced"/>
|
||||
|
||||
<!-- subscript -->
|
||||
<RegExpr String="~\S+~" minimal="true" attribute="Subscript"/>
|
||||
<!-- superscript -->
|
||||
<RegExpr String="\^\S+\^" minimal="true" attribute="Superscript"/>
|
||||
</context>
|
||||
|
||||
<context name="R include" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="^include::.*\[.*?\](?=\s*$)" attribute="Preprocessor" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R macro" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="¯o;" attribute="Preprocessor"/>
|
||||
</context>
|
||||
|
||||
<context name="R marked" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- marked unconstrained - must be ordered before constrained -->
|
||||
<!-- marked constrained - must be ordered after unconstrained -->
|
||||
<RegExpr String="#{2}.+?#{2}|"ed_pre;#"ed;#"ed_post;" attribute="Marked"/>
|
||||
</context>
|
||||
|
||||
<context name="R monospaced" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- monospaced unconstrained - must be ordered before constrained -->
|
||||
<!-- monospaced constrained - must be ordered after unconstrained -->
|
||||
<RegExpr String="`{2}[^`].*?`{2}|"ed_pre;`"ed;`"ed_post;" attribute="Monospaced"/>
|
||||
</context>
|
||||
|
||||
<!-- replacements -->
|
||||
<context name="R replacement" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- copyright -->
|
||||
<StringDetect String="(C)" attribute="Replacement"/>
|
||||
<!-- registered -->
|
||||
<StringDetect String="(R)" attribute="Replacement"/>
|
||||
<!-- trademark -->
|
||||
<StringDetect String="(TM)" attribute="Replacement"/>
|
||||
<!-- apostrophe, only when between alphabetic characters -->
|
||||
<RegExpr String="(?<=[&alp;])'(?=[&alp;])" attribute="Replacement"/>
|
||||
<!-- ellipses -->
|
||||
<StringDetect String="..." attribute="Replacement"/>
|
||||
<!-- mdash -->
|
||||
<Detect2Chars char="-" char1="-" attribute="Replacement"/>
|
||||
<!-- left single arrow -->
|
||||
<Detect2Chars char="<" char1="-" attribute="Replacement"/>
|
||||
<!-- right single arrow -->
|
||||
<Detect2Chars char="-" char1=">" attribute="Replacement"/>
|
||||
<!-- left double arrow -->
|
||||
<Detect2Chars char="<" char1="=" attribute="Replacement"/>
|
||||
<!-- right double arrow -->
|
||||
<Detect2Chars char="=" char1=">" attribute="Replacement"/>
|
||||
<!-- unicode character reference -->
|
||||
<RegExpr String="&char_ref;" attribute="Replacement"/>
|
||||
</context>
|
||||
|
||||
<context name="R section inline" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- literal paragraph started by a line with leading spaces -->
|
||||
<RegExpr String="^\s+(?!&list_marker;)\S.*" attribute="Verbatim" context="verbatim paragraph" column="0"/>
|
||||
<IncludeRules context="R block"/>
|
||||
<IncludeRules context="R anchor"/>
|
||||
<IncludeRules context="R comment"/>
|
||||
<IncludeRules context="R media"/>
|
||||
<IncludeRules context="R preprocessor"/>
|
||||
<IncludeRules context="R horizontal rules and page break"/>
|
||||
</context>
|
||||
|
||||
<!-- first line of a section block -->
|
||||
<context name="R section block" attribute="Normal" lineEndContext="#pop!section block continuation" lineEmptyContext="#pop">
|
||||
<IncludeRules context="R callout"/>
|
||||
<RegExpr String="^\+\s*$" attribute="Control" context="#pop" column="0"/>
|
||||
<IncludeRules context="R admonition"/>
|
||||
<IncludeRules context="R block"/>
|
||||
<IncludeRules context="R shared"/>
|
||||
<IncludeRules context="R empty"/>
|
||||
<IncludeRules context="R normal"/>
|
||||
</context>
|
||||
|
||||
<!-- callout as being used below a source code block -->
|
||||
<context name="R callout" attribute="Normal" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<RegExpr String="^<(?:\.|\d+)>(?=\s+\S)" attribute="Callout" context="#pop!callout" column="0"/>
|
||||
</context>
|
||||
<context name="callout" attribute="Normal" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<IncludeRules context="R callout"/>
|
||||
<IncludeRules context="section block continuation"/>
|
||||
</context>
|
||||
|
||||
<!-- line 2 and following of a section block -->
|
||||
<context name="section block continuation" attribute="Normal" lineEndContext="#stay" lineEmptyContext="#pop">
|
||||
<RegExpr String="^\+\s*$" attribute="Control" context="#pop" column="0"/>
|
||||
<IncludeRules context="R block without title"/>
|
||||
<IncludeRules context="R shared"/>
|
||||
<IncludeRules context="R empty"/>
|
||||
<IncludeRules context="R normal"/>
|
||||
</context>
|
||||
|
||||
<context name="R empty" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="^\s+$" attribute="Normal" context="#pop" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R shared" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- the escaped forms must be ordered before the not escaped forms -->
|
||||
<DetectChar char="\" attribute="Normal" context="backlash"/>
|
||||
|
||||
<!-- passthrough - inline, must be ordered before other rules
|
||||
The macro form pass: is part of "R macro" context -->
|
||||
<RegExpr String=""ed_pre_pass;(\+{1,3})"ed;\g1"ed_post;" attribute="Passthrough"/>
|
||||
|
||||
<IncludeRules context="R anchor"/>
|
||||
<IncludeRules context="R attribute"/>
|
||||
<IncludeRules context="R comment"/>
|
||||
<IncludeRules context="R include"/>
|
||||
<IncludeRules context="R macro"/>
|
||||
|
||||
<!-- counter and counter2 -->
|
||||
<RegExpr String="\{counter2?:\s*&id;\s*(?::\s*(?:\d+|[&alp;])\s*)?\}" minimal="true" attribute="Attribute"/>
|
||||
|
||||
<!-- horizontal rules and page break -->
|
||||
<!-- to enable highlighting of the horizontal rules using "- - -" or "* * *",
|
||||
keep this before the checklist and unnumbered list definition -->
|
||||
<IncludeRules context="R horizontal rules and page break"/>
|
||||
|
||||
<!-- cross reference -->
|
||||
<RegExpr String="<<[^<\s].*?>>" attribute="Link"/>
|
||||
|
||||
<!-- index term -->
|
||||
<RegExpr String="\({3}.+?\){3}|\({2}.+?\){2}|indexterm2?:\[.+?\]" attribute="Preprocessor"/>
|
||||
|
||||
<!-- marker for description list -->
|
||||
<!-- marker for numbered list -->
|
||||
<!-- marker for checklist and bulleted/unnumbered list
|
||||
To enable highlighting of the horizontal rules using "- - -" or "* * *",
|
||||
keep this after the horizontal rules definition -->
|
||||
<RegExpr String="^\s*&list_marker;" attribute="List Marker" column="0"/>
|
||||
|
||||
<!-- media - block format -->
|
||||
<IncludeRules context="R media"/>
|
||||
|
||||
<!-- links -->
|
||||
<RegExpr String="(?<=^|[\s\[\]();<>])(?:ftp|https?|irc)://[^\s\[]*?(?:\[\]|\[.*?[^\\]\]|(?=(?:[\[\]]|[\.,;:]??(?:\s|$))))|&link_mailto;|&email;" attribute="Link"/>
|
||||
|
||||
<!-- preprocessor -->
|
||||
<!-- general meta data attribute list - must be ordered after other rules matching for lines of the form of [some content] -->
|
||||
<IncludeRules context="R preprocessor"/>
|
||||
|
||||
<!-- continuation `+`, both at end of line and on a line on its own -->
|
||||
<RegExpr String="(?:^|\s)\s*\+\s*$" lookAhead="true" attribute="Normal" context="continuation"/>
|
||||
|
||||
<!-- formatted/quoted must be ordered after unnumbered list -->
|
||||
<IncludeRules context="R formatted"/>
|
||||
<!-- replacements are done only if nothing else matched -->
|
||||
<IncludeRules context="R replacement"/>
|
||||
</context>
|
||||
|
||||
<context name="R media" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="^(?:audio|image|video)::.*\[.*?\](?=\s*$)" attribute="Preprocessor" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R preprocessor" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="^ifn?def::&id;(?:[,\+]&id;)*\[.*\]|^ifeval::\[.*\]|^endif::(?:&id;)?\[\]|^\[[^\s\[].*\](?=\s*$)" attribute="Preprocessor" column="0"/>
|
||||
</context>
|
||||
|
||||
<context name="R horizontal rules and page break" attribute="Normal" lineEndContext="#stay">
|
||||
<RegExpr String="^(?:'{3}|-{3}|\*{3}|- - -|\* \* \*|<{3})\s*$" attribute="Control" column="0"/>
|
||||
</context>
|
||||
|
||||
<!-- common rules for main title, section title, block title -->
|
||||
<context name="R title" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier/>
|
||||
<!-- the escaped forms must be ordered before the not escaped forms -->
|
||||
<DetectChar char="\" attribute="Section Title" context="backlash"/>
|
||||
<IncludeRules context="R anchor"/>
|
||||
<IncludeRules context="R attribute usage"/>
|
||||
<IncludeRules context="R marked"/>
|
||||
<IncludeRules context="R monospaced"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Anchor" defStyleNum="dsFunction"/>
|
||||
<itemData name="Attribute" defStyleNum="dsVariable"/>
|
||||
<itemData name="Attribute Value" defStyleNum="dsVariable" italic="true"/>
|
||||
<itemData name="Block Title" defStyleNum="dsString" italic="true"/>
|
||||
<itemData name="Callout" defStyleNum="dsNormal" bold="true" underline="true"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Control" defStyleNum="dsControlFlow" bold="true" underline="true"/>
|
||||
<itemData name="Delimiter" defStyleNum="dsPreprocessor" bold="true"/>
|
||||
<itemData name="Emphasized" defStyleNum="dsNormal" italic="true"/>
|
||||
<itemData name="Emphasized Monospaced" defStyleNum="dsDocumentation" italic="true"/>
|
||||
<itemData name="Emphasized Monospaced Strong" defStyleNum="dsDocumentation" bold="true" italic="true"/>
|
||||
<itemData name="Emphasized Strong" defStyleNum="dsNormal" bold="true" italic="true"/>
|
||||
<itemData name="Link" defStyleNum="dsVariable" underline="true"/>
|
||||
<itemData name="List Marker" defStyleNum="dsNormal" bold="true"/>
|
||||
<itemData name="Main Title" defStyleNum="dsNormal" bold="true"/>
|
||||
<itemData name="Marked" defStyleNum="dsFloat"/>
|
||||
<itemData name="Monospaced" defStyleNum="dsDocumentation"/>
|
||||
<itemData name="Monospaced Strong" defStyleNum="dsDocumentation" bold="true"/>
|
||||
<itemData name="Normal" defStyleNum="dsNormal"/>
|
||||
<itemData name="Passthrough" defStyleNum="dsSpecialString"/>
|
||||
<itemData name="Preprocessor" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Replacement" defStyleNum="dsNormal" bold="true" underline="true"/>
|
||||
<itemData name="Section Title" defStyleNum="dsString" bold="true"/>
|
||||
<itemData name="Strong" defStyleNum="dsNormal" bold="true"/>
|
||||
<itemData name="Subscript" defStyleNum="dsNormal" underline="true"/>
|
||||
<itemData name="Superscript" defStyleNum="dsNormal" bold="true" underline="true"/>
|
||||
<itemData name="Verbatim" defStyleNum="dsDocumentation"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//"/>
|
||||
<comment name="multiLine" start="////" end="////" region="comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
@@ -0,0 +1,401 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
|
||||
*************************************************************************
|
||||
* *
|
||||
* Syntax highlighting for the AVR Assembler *
|
||||
* Copyright (C) 2004, Roland Nagy *
|
||||
* *
|
||||
*************************************************************************
|
||||
|
||||
Author: Rolanf Nagy <R.Nagy@pknc.com>
|
||||
Date: 18th May, 2004
|
||||
Version: 1.0
|
||||
|
||||
This file contains the XML syntax highlighting description for the AVR
|
||||
Assembler, for KATE, the KDE Advanced Editor. Keywords have been taken
|
||||
directly from the AVR Assembler source code.
|
||||
|
||||
This program, including associated files, is free software. You may
|
||||
distribute it and/or modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either Version 2 of
|
||||
the license, or (at your option) any later version.
|
||||
|
||||
This program 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 General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
-->
|
||||
|
||||
<language name="AVR Assembler" version="6" kateversion="5.62" section="Assembler" extensions="*.asm;*.ASM;*.asm-avr" mimetype="text/x-asm;text/x-asm-avr" author="Roland Nagy" license="GPLv2+">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>adc</item>
|
||||
<item>add</item>
|
||||
<item>adiw</item>
|
||||
<item>and</item>
|
||||
<item>andi</item>
|
||||
<item>asr</item>
|
||||
<item>bclr</item>
|
||||
<item>bld</item>
|
||||
<item>break</item>
|
||||
<item>bset</item>
|
||||
<item>bst</item>
|
||||
<item>cbi</item>
|
||||
<item>cbr</item>
|
||||
<item>clc</item>
|
||||
<item>clh</item>
|
||||
<item>cli</item>
|
||||
<item>cln</item>
|
||||
<item>clr</item>
|
||||
<item>cls</item>
|
||||
<item>clt</item>
|
||||
<item>clv</item>
|
||||
<item>clz</item>
|
||||
<item>com</item>
|
||||
<item>dec</item>
|
||||
<item>des</item>
|
||||
<item>elpm</item>
|
||||
<item>eor</item>
|
||||
<item>fmul</item>
|
||||
<item>fmuls</item>
|
||||
<item>fmulsu</item>
|
||||
<item>in</item>
|
||||
<item>inc</item>
|
||||
<item>lac</item>
|
||||
<item>las</item>
|
||||
<item>lat</item>
|
||||
<item>ld</item>
|
||||
<item>ldd</item>
|
||||
<item>ldi</item>
|
||||
<item>lds</item>
|
||||
<item>lpm</item>
|
||||
<item>lsl</item>
|
||||
<item>lsr</item>
|
||||
<item>mov</item>
|
||||
<item>movw</item>
|
||||
<item>mul</item>
|
||||
<item>muls</item>
|
||||
<item>mulsu</item>
|
||||
<item>neg</item>
|
||||
<item>nop</item>
|
||||
<item>or</item>
|
||||
<item>ori</item>
|
||||
<item>out</item>
|
||||
<item>pop</item>
|
||||
<item>push</item>
|
||||
<item>rol</item>
|
||||
<item>ror</item>
|
||||
<item>sbc</item>
|
||||
<item>sbr</item>
|
||||
<item>sec</item>
|
||||
<item>seh</item>
|
||||
<item>sbi</item>
|
||||
<item>sbci</item>
|
||||
<item>sbiw</item>
|
||||
<item>sei</item>
|
||||
<item>sen</item>
|
||||
<item>ser</item>
|
||||
<item>ses</item>
|
||||
<item>set</item>
|
||||
<item>sev</item>
|
||||
<item>sez</item>
|
||||
<item>sleep</item>
|
||||
<item>spm</item>
|
||||
<item>st</item>
|
||||
<item>std</item>
|
||||
<item>sts</item>
|
||||
<item>sub</item>
|
||||
<item>subi</item>
|
||||
<item>swap</item>
|
||||
<item>tst</item>
|
||||
<item>wdr</item>
|
||||
<item>xch</item>
|
||||
</list>
|
||||
|
||||
<list name="branch instructions">
|
||||
<item>brbc</item>
|
||||
<item>brbs</item>
|
||||
<item>brcc</item>
|
||||
<item>brcs</item>
|
||||
<item>breq</item>
|
||||
<item>brge</item>
|
||||
<item>brhc</item>
|
||||
<item>brhs</item>
|
||||
<item>brid</item>
|
||||
<item>brie</item>
|
||||
<item>brlo</item>
|
||||
<item>brlt</item>
|
||||
<item>brmi</item>
|
||||
<item>brne</item>
|
||||
<item>brpl</item>
|
||||
<item>brsh</item>
|
||||
<item>brtc</item>
|
||||
<item>brts</item>
|
||||
<item>brvc</item>
|
||||
<item>brvs</item>
|
||||
<item>call</item>
|
||||
<item>cp</item>
|
||||
<item>cpc</item>
|
||||
<item>cpi</item>
|
||||
<item>cpse</item>
|
||||
<item>eicall</item>
|
||||
<item>eijmp</item>
|
||||
<item>icall</item>
|
||||
<item>ijmp</item>
|
||||
<item>jmp</item>
|
||||
<item>rcall</item>
|
||||
<item>ret</item>
|
||||
<item>reti</item>
|
||||
<item>rjmp</item>
|
||||
<item>sbic</item>
|
||||
<item>sbis</item>
|
||||
<item>sbrc</item>
|
||||
<item>sbrs</item>
|
||||
</list>
|
||||
|
||||
<list name="directives">
|
||||
<item>.byte</item>
|
||||
<item>.cseg</item>
|
||||
<item>.csegsize</item>
|
||||
<item>.db</item>
|
||||
<item>.dd</item>
|
||||
<item>.def</item>
|
||||
<item>.dq</item>
|
||||
<item>.dseg</item>
|
||||
<item>.dw</item>
|
||||
<item>.elif</item>
|
||||
<item>.else</item>
|
||||
<item>.endif</item>
|
||||
<item>.endm</item>
|
||||
<item>.endmacro</item>
|
||||
<item>.equ</item>
|
||||
<item>.error</item>
|
||||
<item>.esec</item>
|
||||
<item>.exit</item>
|
||||
<item>.if</item>
|
||||
<item>.ifdef</item>
|
||||
<item>.ifndef</item>
|
||||
<item>.include</item>
|
||||
<item>.list</item>
|
||||
<item>.listmac</item>
|
||||
<item>.macro</item>
|
||||
<item>.message</item>
|
||||
<item>.nolist</item>
|
||||
<item>.nooverlap</item>
|
||||
<item>.org</item>
|
||||
<item>.overlap</item>
|
||||
<item>.set</item>
|
||||
<item>.undef</item>
|
||||
<item>.warning</item>
|
||||
</list>
|
||||
|
||||
<list name="functions">
|
||||
<item>low</item>
|
||||
<item>high</item>
|
||||
<item>byte2</item>
|
||||
<item>byte3</item>
|
||||
<item>byte4</item>
|
||||
<item>lwrd</item>
|
||||
<item>hwrd</item>
|
||||
<item>page</item>
|
||||
<item>exp2</item>
|
||||
<item>log2</item>
|
||||
<item>int</item>
|
||||
<item>frac</item>
|
||||
<item>q7</item>
|
||||
<item>q15</item>
|
||||
<item>abs</item>
|
||||
<item>defined</item>
|
||||
<item>strlen</item>
|
||||
</list>
|
||||
|
||||
<list name="constants">
|
||||
<item>__AVRASM_VERSION__</item>
|
||||
<item>__CORE_VERSION__</item>
|
||||
<item>__DATE__</item>
|
||||
<item>__TIME__</item>
|
||||
<item>__CENTURY__</item>
|
||||
<item>__YEAR__</item>
|
||||
<item>__MONTH__</item>
|
||||
<item>__FILE__</item>
|
||||
<item>__LINE__</item>
|
||||
<item>__SECOND__</item>
|
||||
<item>__MINUTE__</item>
|
||||
<item>__HOUR__</item>
|
||||
<item>__DAY__</item>
|
||||
<item>__PART_NAME__</item>
|
||||
</list>
|
||||
|
||||
<list name="macros">
|
||||
<item>#define</item>
|
||||
<item>#if</item>
|
||||
<item>#undef</item>
|
||||
<item>#idef</item>
|
||||
<item>#ifndef</item>
|
||||
<item>#if</item>
|
||||
<item>#elif</item>
|
||||
<item>#else</item>
|
||||
<item>#endif</item>
|
||||
<item>#error</item>
|
||||
<item>#warning</item>
|
||||
<item>#message</item>
|
||||
<item>#include</item>
|
||||
<item>#pragma</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<DetectSpaces attribute="Normal Text" />
|
||||
<DetectChar attribute="Decimal" context="Number" char="0" lookAhead="1" />
|
||||
<Int attribute="Decimal" context="Decimal" />
|
||||
<DetectChar attribute="Directive" context="Directive" char="." lookAhead="1"/>
|
||||
<DetectChar attribute="Hex" context="Hex" char="$" />
|
||||
<DetectChar attribute="Referred Macro Parameter" context="RefMacroParam" char="@" lookAhead="1" />
|
||||
<HlCChar attribute="Char" context="#stay" />
|
||||
<DetectChar attribute="String" context="String" char=""" />
|
||||
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="*" beginRegion="BlockComment" />
|
||||
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="/" />
|
||||
<DetectChar attribute="Comment" context="Commentar 2" char=";" />
|
||||
<AnyChar attribute="Symbol" context="#stay" String="!~-*/%+-<>=&^|?,()\" />
|
||||
<DetectChar attribute="Preprocessor" context="Preprocessor" char="#" firstNonSpace="1" lookAhead="1"/>
|
||||
<RegExpr attribute="Label" context="#stay" String="[A-Za-z0-9_]+:" firstNonSpace="1"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Branch Instructions" context="#stay" String="branch instructions"/>
|
||||
<keyword attribute="Function" context="#stay" String="functions"/>
|
||||
<RegExpr context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />
|
||||
</context>
|
||||
|
||||
<context attribute="Referred Macro Parameter" lineEndContext="#pop" name="RefMacroParam">
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="0" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="1" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="2" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="3" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="4" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="5" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="6" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="7" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="8" />
|
||||
<Detect2Chars attribute="Referred Macro Parameter" context="#pop" char="@" char1="9" />
|
||||
<DetectChar attribute="Error" context="#pop" char="@" />
|
||||
</context>
|
||||
|
||||
<context attribute="Directive" lineEndContext="#pop" name="Directive" fallthroughContext="#pop!BadDirective">
|
||||
<keyword attribute="Directive" context="#pop" String="directives" insensitive="1" />
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="BadDirective" fallthroughContext="#pop">
|
||||
<DetectChar attribute="Error" context="#stay" char="." />
|
||||
<DetectIdentifier attribute="Error" context="#pop" />
|
||||
</context>
|
||||
|
||||
<context attribute="Decimal" lineEndContext="#pop" name="Number">
|
||||
<StringDetect attribute="Hex" context="#pop!Hex" String="0x" insensitive="1" />
|
||||
<StringDetect attribute="Binary" context="#pop!Binary" String="0b" insensitive="1" />
|
||||
<StringDetect attribute="Float" context="#pop!Float" String="0f" insensitive="1" />
|
||||
<StringDetect attribute="Float" context="#pop!Float" String="0e" insensitive="1" />
|
||||
<StringDetect attribute="Float" context="#pop!Float" String="0d" insensitive="1" />
|
||||
<WordDetect attribute="Decimal" context="#pop" String="0" />
|
||||
<DetectChar attribute="Octal" context="#pop!Octal" char="0" />
|
||||
</context>
|
||||
|
||||
<context attribute="Decimal" lineEndContext="#pop" name="Decimal" fallthroughContext="#pop">
|
||||
<AnyChar attribute="Decimal" context="#stay" String="0123456789_" />
|
||||
</context>
|
||||
|
||||
<context attribute="Binary" lineEndContext="#pop" name="Binary" fallthroughContext="#pop">
|
||||
<AnyChar attribute="Binary" context="#stay" String="01_" />
|
||||
</context>
|
||||
|
||||
<context attribute="Octal" lineEndContext="#pop" name="Octal" fallthroughContext="#pop">
|
||||
<AnyChar attribute="Octal" context="#stay" String="01234567_" />
|
||||
</context>
|
||||
|
||||
<context attribute="Hex" lineEndContext="#pop" name="Hex" fallthroughContext="#pop">
|
||||
<AnyChar attribute="Hex" context="#stay" String="0123456789abcdefABCDEF_" />
|
||||
</context>
|
||||
|
||||
<context attribute="Float" lineEndContext="#pop" name="Float" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Float" context="#stay" String="[-+]?[0-9]*+\.?[0-9]*+[eE]?[-+]?[0-9]+" />
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<LineContinue attribute="Symbol" />
|
||||
<HlCStringChar attribute="String Char" context="#stay" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Commentar 1">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Commentar 2">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
|
||||
<keyword attribute="Preprocessor" context="#pop!InPreprocessor" String="macros" />
|
||||
<DetectChar attribute="Preprocessor" context="#pop!PreprocessorName" char="#" />
|
||||
</context>
|
||||
<context attribute="Preprocessor" lineEndContext="#pop" name="PreprocessorName">
|
||||
<DetectIdentifier attribute="Unknown Preprocessor" context="#pop!InPreprocessor" />
|
||||
</context>
|
||||
|
||||
<context attribute="Preprocessor" lineEndContext="#pop" name="InPreprocessor">
|
||||
<LineContinue attribute="Symbol" />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="#" />
|
||||
<Detect2Chars attribute="Constant" context="Constant" char="_" char1="_" lookAhead="1"/>
|
||||
<IncludeRules context="Normal" />
|
||||
</context>
|
||||
|
||||
<context attribute="Constant" lineEndContext="#stay" name="Constant">
|
||||
<keyword attribute="Constant" context="#pop" String="constants"/>
|
||||
<RegExpr attribute="Constant" context="#pop" String="__(?:[0-9a-zA-Z]++|_(?!_))++__" />
|
||||
<DetectIdentifier attribute="Error" context="#pop" />
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="Label" defStyleNum="dsFunction" />
|
||||
<itemData name="Function" defStyleNum="dsFunction" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" />
|
||||
<itemData name="Branch Instructions" defStyleNum="dsControlFlow" />
|
||||
<itemData name="Directive" defStyleNum="dsKeyword" />
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" />
|
||||
<itemData name="Octal" defStyleNum="dsBaseN" />
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" />
|
||||
<itemData name="Binary" defStyleNum="dsBaseN" />
|
||||
<itemData name="Float" defStyleNum="dsFloat" />
|
||||
<itemData name="Char" defStyleNum="dsChar" />
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar" />
|
||||
<itemData name="Symbol" defStyleNum="dsOperator" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Preprocessor" defStyleNum="dsPreprocessor" />
|
||||
<itemData name="Constant" defStyleNum="dsOthers" />
|
||||
<itemData name="Error" defStyleNum="dsError" />
|
||||
<itemData name="Unknown Preprocessor" defStyleNum="dsError" />
|
||||
<itemData name="Referred Macro Parameter" defStyleNum="dsVariable" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start=";" />
|
||||
<comment name="multiLine" start="/*" end="*/" region="BlockComment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" weakDeliminator=".$#" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,468 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
|
||||
<language name="Motorola DSP56k" section="Assembler" version="5" kateversion="5.62" extensions="*.asm;*.inc;*.ASM;*.INC" author="Miro Kropacek (miro.kropacek@gmail.com)" license="LGPL">
|
||||
|
||||
<highlighting>
|
||||
<list name="Data Registers">
|
||||
<item>x</item>
|
||||
<item>x0</item>
|
||||
<item>x1</item>
|
||||
<item>y</item>
|
||||
<item>y0</item>
|
||||
<item>y1</item>
|
||||
<item>a2</item>
|
||||
<item>a1</item>
|
||||
<item>a0</item>
|
||||
<item>a</item>
|
||||
<item>a10</item>
|
||||
<item>ab</item>
|
||||
<item>b2</item>
|
||||
<item>b1</item>
|
||||
<item>b0</item>
|
||||
<item>b</item>
|
||||
<item>b10</item>
|
||||
<item>ba</item>
|
||||
</list>
|
||||
|
||||
<list name="Address Registers">
|
||||
<item>r0</item>
|
||||
<item>r1</item>
|
||||
<item>r2</item>
|
||||
<item>r3</item>
|
||||
<item>r4</item>
|
||||
<item>r5</item>
|
||||
<item>r6</item>
|
||||
<item>r7</item>
|
||||
</list>
|
||||
|
||||
<list name="Offset Registers">
|
||||
<item>n0</item>
|
||||
<item>n1</item>
|
||||
<item>n2</item>
|
||||
<item>n3</item>
|
||||
<item>n4</item>
|
||||
<item>n5</item>
|
||||
<item>n6</item>
|
||||
<item>n7</item>
|
||||
</list>
|
||||
|
||||
<list name="Modifier Registers">
|
||||
<item>m0</item>
|
||||
<item>m1</item>
|
||||
<item>m2</item>
|
||||
<item>m3</item>
|
||||
<item>m4</item>
|
||||
<item>m5</item>
|
||||
<item>m6</item>
|
||||
<item>m7</item>
|
||||
</list>
|
||||
|
||||
<list name="Control Registers">
|
||||
<item>la</item>
|
||||
<item>lc</item>
|
||||
<item>pc</item>
|
||||
<item>ssh</item>
|
||||
<item>ssl</item>
|
||||
<item>omr</item>
|
||||
<item>sr</item>
|
||||
<item>sp</item>
|
||||
<item>mr</item>
|
||||
<item>ccr</item>
|
||||
</list>
|
||||
|
||||
<list name="Instructions">
|
||||
<item>abs</item>
|
||||
<item>adc</item>
|
||||
<item>add</item>
|
||||
<item>addl</item>
|
||||
<item>addr</item>
|
||||
<item>and</item>
|
||||
<item>andi</item>
|
||||
<item>asl</item>
|
||||
<item>asr</item>
|
||||
<item>bchg</item>
|
||||
<item>bclr</item>
|
||||
<item>bset</item>
|
||||
<item>btst</item>
|
||||
<item>clr</item>
|
||||
<item>cmp</item>
|
||||
<item>cmpm</item>
|
||||
<item>div</item>
|
||||
<item>do</item>
|
||||
<item>enddo</item>
|
||||
<item>eor</item>
|
||||
<item>illegal</item>
|
||||
<item>jcc</item>
|
||||
<item>jhs</item>
|
||||
<item>jcs</item>
|
||||
<item>jls</item>
|
||||
<item>jec</item>
|
||||
<item>jeq</item>
|
||||
<item>jes</item>
|
||||
<item>jge</item>
|
||||
<item>jgt</item>
|
||||
<item>jlc</item>
|
||||
<item>jle</item>
|
||||
<item>jls</item>
|
||||
<item>jlt</item>
|
||||
<item>jmi</item>
|
||||
<item>jne</item>
|
||||
<item>jnr</item>
|
||||
<item>jpl</item>
|
||||
<item>jnn</item>
|
||||
<item>jclr</item>
|
||||
<item>jmp</item>
|
||||
<item>jscc</item>
|
||||
<item>jshs</item>
|
||||
<item>jscs</item>
|
||||
<item>jsls</item>
|
||||
<item>jsec</item>
|
||||
<item>jseq</item>
|
||||
<item>jses</item>
|
||||
<item>jsge</item>
|
||||
<item>jsgt</item>
|
||||
<item>jslc</item>
|
||||
<item>jsle</item>
|
||||
<item>jsls</item>
|
||||
<item>jslt</item>
|
||||
<item>jsmi</item>
|
||||
<item>jsne</item>
|
||||
<item>jsnr</item>
|
||||
<item>jspl</item>
|
||||
<item>jsnn</item>
|
||||
<item>jsclr</item>
|
||||
<item>jset</item>
|
||||
<item>jsr</item>
|
||||
<item>jsset</item>
|
||||
<item>lsl</item>
|
||||
<item>lsr</item>
|
||||
<item>lua</item>
|
||||
<item>mac</item>
|
||||
<item>macr</item>
|
||||
<item>move</item>
|
||||
<item>movec</item>
|
||||
<item>movem</item>
|
||||
<item>movep</item>
|
||||
<item>mpy</item>
|
||||
<item>mpyr</item>
|
||||
<item>neg</item>
|
||||
<item>nop</item>
|
||||
<item>norm</item>
|
||||
<item>not</item>
|
||||
<item>or</item>
|
||||
<item>ori</item>
|
||||
<item>rep</item>
|
||||
<item>reset</item>
|
||||
<item>rnd</item>
|
||||
<item>rol</item>
|
||||
<item>ror</item>
|
||||
<item>rti</item>
|
||||
<item>rts</item>
|
||||
<item>sbc</item>
|
||||
<item>stop</item>
|
||||
<item>sub</item>
|
||||
<item>subl</item>
|
||||
<item>subr</item>
|
||||
<item>swi</item>
|
||||
<item>tcc</item>
|
||||
<item>ths</item>
|
||||
<item>tcs</item>
|
||||
<item>tls</item>
|
||||
<item>tec</item>
|
||||
<item>teq</item>
|
||||
<item>tes</item>
|
||||
<item>tge</item>
|
||||
<item>tgt</item>
|
||||
<item>tlc</item>
|
||||
<item>tle</item>
|
||||
<item>tls</item>
|
||||
<item>tlt</item>
|
||||
<item>tmi</item>
|
||||
<item>tne</item>
|
||||
<item>tnr</item>
|
||||
<item>tpl</item>
|
||||
<item>snn</item>
|
||||
<item>tfr</item>
|
||||
<item>tst</item>
|
||||
<item>wait</item>
|
||||
</list>
|
||||
|
||||
<list name="Directives">
|
||||
<item>endif</item>
|
||||
<item>endc</item>
|
||||
<item>else</item>
|
||||
<item>ifne</item>
|
||||
<item>if</item>
|
||||
<item>ifeq</item>
|
||||
<item>ifle</item>
|
||||
<item>iflt</item>
|
||||
<item>ifge</item>
|
||||
<item>ifgt</item>
|
||||
<item>include</item>
|
||||
<item>incbin</item>
|
||||
<item>printval</item>
|
||||
<item>pass1val</item>
|
||||
<item>pass2val</item>
|
||||
<item>fail</item>
|
||||
<item>endm</item>
|
||||
<item>end</item>
|
||||
<item>org</item>
|
||||
<item>ds</item>
|
||||
<item>dsm</item>
|
||||
<item>list</item>
|
||||
<item>nolist</item>
|
||||
<item>macro</item>
|
||||
<item>dc</item>
|
||||
<item>equ</item>
|
||||
</list>
|
||||
|
||||
<list name="Functions">
|
||||
<item>@abs</item>
|
||||
<item>@acs</item>
|
||||
<item>@asn</item>
|
||||
<item>@at2</item>
|
||||
<item>@atn</item>
|
||||
<item>@cel</item>
|
||||
<item>@coh</item>
|
||||
<item>@cos</item>
|
||||
<item>@flr</item>
|
||||
<item>@l10</item>
|
||||
<item>@log</item>
|
||||
<item>@max</item>
|
||||
<item>@min</item>
|
||||
<item>@pow</item>
|
||||
<item>@rnd</item>
|
||||
<item>@sgn</item>
|
||||
<item>@sin</item>
|
||||
<item>@snh</item>
|
||||
<item>@sqt</item>
|
||||
<item>@tan</item>
|
||||
<item>@tnh</item>
|
||||
<item>@xpn</item>
|
||||
<item>@cvf</item>
|
||||
<item>@cvi</item>
|
||||
<item>@cvs</item>
|
||||
<item>@fld</item>
|
||||
<item>@frc</item>
|
||||
<item>@lfr</item>
|
||||
<item>@lng</item>
|
||||
<item>@lun</item>
|
||||
<item>@rvb</item>
|
||||
<item>@unf</item>
|
||||
<item>@len</item>
|
||||
<item>@pos</item>
|
||||
<item>@scp</item>
|
||||
<item>@arg</item>
|
||||
<item>@cnt</item>
|
||||
<item>@mac</item>
|
||||
<item>@mxp</item>
|
||||
<item>@ccc</item>
|
||||
<item>@chk</item>
|
||||
<item>@ctr</item>
|
||||
<item>@def</item>
|
||||
<item>@exp</item>
|
||||
<item>@int</item>
|
||||
<item>@lcv</item>
|
||||
<item>@lst</item>
|
||||
<item>@msp</item>
|
||||
<item>@rel</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal Text" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Operation">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
|
||||
<DetectChar attribute="Comment" context="Comment" char="*" firstNonSpace="1"/>
|
||||
|
||||
<DetectIdentifier attribute="Label" context="Label" column="0"/>
|
||||
<DetectChar attribute="Local label" context="LocalLabel" char="_" column="0"/>
|
||||
|
||||
<keyword attribute="Instructions" context="Operation" String="Instructions"/>
|
||||
<keyword attribute="Directives" context="Operation" String="Directives"/>
|
||||
|
||||
<RegExpr attribute="Label" context="EndLabel" String="[a-zA-Z][a-zA-Z0-9._]*+(?=:)"/>
|
||||
<RegExpr attribute="Local label" context="EndLabel" String="_[a-zA-Z][a-zA-Z0-9._]*+(?=:)"/>
|
||||
|
||||
<DetectIdentifier attribute="Unknown Instructions" context="Operation"/>
|
||||
</context>
|
||||
|
||||
<context name="Operation" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="Expression">
|
||||
<AnyChar attribute="Constant" context="Addressing Mode" String="#<>"/>
|
||||
<RegExpr attribute="Memory" context="#stay" String="[xylpXYLP]:"/>
|
||||
</context>
|
||||
|
||||
<context name="Addressing Mode" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop!Constant_Expression">
|
||||
<AnyChar attribute="Constant" context="#pop!Constant_Expression" String="<>"/>
|
||||
</context>
|
||||
|
||||
<context name="Expression" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Hex" context="Number16" char="$"/>
|
||||
<DetectChar attribute="Binary" context="Number2" char="%"/>
|
||||
<DetectChar attribute="Number" context="Number8OrFunc" char="@" lookAhead="1"/>
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<Int attribute="Number" context="#stay"/>
|
||||
<IncludeRules context="Inc_Expression"/>
|
||||
<DetectIdentifier attribute="Normal Text"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Expression" attribute="Constant" lineEndContext="#pop">
|
||||
<DetectChar attribute="Constant" context="Constant_Number16" char="$"/>
|
||||
<DetectChar attribute="Constant" context="Constant_Number2" char="%"/>
|
||||
<DetectChar attribute="Constant" context="Constant_Number8OrFunc" char="@" lookAhead="1"/>
|
||||
<Float attribute="Constant" context="#stay"/>
|
||||
<Int attribute="Constant" context="#stay"/>
|
||||
<IncludeRules context="Inc_Expression"/>
|
||||
<DetectIdentifier attribute="Label"/>
|
||||
</context>
|
||||
|
||||
<context name="Inc_Expression" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Comment" context="#pop!Comment" char=";"/>
|
||||
<DetectChar attribute="Symbol Separator" context="#pop" char=","/>
|
||||
<DetectSpaces attribute="Normal Text" context="#pop"/>
|
||||
<AnyChar attribute="Symbols" context="#stay" String="+-*/%?&|<>^!=[]{}()"/>
|
||||
|
||||
<DetectChar attribute="String" context="SQ_String" char="'"/>
|
||||
<DetectChar attribute="String" context="DQ_String" char="""/>
|
||||
|
||||
<keyword attribute="Data Registers" context="#stay" String="Data Registers"/>
|
||||
<keyword attribute="Address Registers" context="#stay" String="Address Registers"/>
|
||||
<keyword attribute="Offset Registers" context="#stay" String="Offset Registers"/>
|
||||
<keyword attribute="Modifier Registers" context="#stay" String="Modifier Registers"/>
|
||||
<keyword attribute="Control Registers" context="#stay" String="Control Registers"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Number16" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Constant" context="#pop" String="[A-Fa-f0-9]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Number2" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Constant" context="#pop" String="[01]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Number8OrFunc" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<keyword attribute="Functions" context="#pop!Constant_Func" String="Functions"/>
|
||||
<DetectChar attribute="Constant" context="#pop!Constant_Number8OrFunc_2" char="@"/>
|
||||
</context>
|
||||
<context name="Constant_Number8OrFunc_2" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<DetectIdentifier attribute="Constant" context="#pop!Constant_Func"/>
|
||||
<RegExpr attribute="Constant" context="#pop" String="[0-7]+"/>
|
||||
</context>
|
||||
<context name="Constant_Func" attribute="Functions" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<DetectChar attribute="Symbols" context="#pop!Constant_InnerFunc" char="("/>
|
||||
</context>
|
||||
<context name="Constant_InnerFunc" attribute="Functions" lineEndContext="#pop">
|
||||
<DetectChar attribute="Symbols" context="#pop" char=")"/>
|
||||
<DetectChar attribute="Symbols" context="Constant_InnerFunc" char="("/>
|
||||
<DetectChar attribute="Symbol Separator" context="#stay" char=","/>
|
||||
<DetectChar attribute="Constant" context="Constant_Number16" char="$"/>
|
||||
<DetectChar attribute="Constant" context="Constant_Number2" char="%"/>
|
||||
<DetectChar attribute="Constant" context="Constant_Number8OrFunc" char="@" lookAhead="1"/>
|
||||
<Float attribute="Constant" context="#stay"/>
|
||||
<Int attribute="Constant" context="#stay"/>
|
||||
<IncludeRules context="Inc_Expression"/>
|
||||
<DetectIdentifier attribute="Normal Text"/>
|
||||
</context>
|
||||
|
||||
<context name="Number8OrFunc" attribute="Octal" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<keyword attribute="Functions" context="#pop" String="Functions"/>
|
||||
<DetectChar attribute="Octal" context="#pop!Number8OrFunc_2" char="@"/>
|
||||
</context>
|
||||
<context name="Number8OrFunc_2" attribute="Octal" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Octal" context="#pop" String="[0-7]+"/>
|
||||
<DetectIdentifier attribute="Functions" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Number16" attribute="Hex" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Hex" context="#pop" String="[A-Fa-f0-9]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Number2" attribute="Binary" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Binary" context="#pop" String="[01]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Label" attribute="Label" lineEndContext="#pop" fallthroughContext="#pop!EndLabel">
|
||||
<DetectChar attribute="Label" context="Label2" char="."/>
|
||||
</context>
|
||||
<context name="Label2" attribute="Label" lineEndContext="#pop" fallthroughContext="#pop#pop!EndLabel">
|
||||
<DetectIdentifier attribute="Label" context="#stay"/>
|
||||
<DetectChar attribute="Label" context="#stay" char="."/>
|
||||
</context>
|
||||
|
||||
<context name="LocalLabel" attribute="Local label" lineEndContext="#pop" fallthroughContext="#pop!EndLabel">
|
||||
<DetectChar attribute="Local label" context="LocalLabel2" char="."/>
|
||||
</context>
|
||||
<context name="LocalLabel2" attribute="Local label" lineEndContext="#pop" fallthroughContext="#pop#pop!EndLabel">
|
||||
<DetectIdentifier attribute="Local label" context="#stay"/>
|
||||
<DetectChar attribute="Local label" context="#stay" char="."/>
|
||||
</context>
|
||||
|
||||
<context name="EndLabel" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<DetectChar attribute="Symbols" context="#stay" char=":"/>
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<keyword attribute="Instructions" context="#pop!Operation" String="Instructions"/>
|
||||
<keyword attribute="Directives" context="#pop!Operation" String="Directives"/>
|
||||
<DetectIdentifier attribute="Unknown Instructions" context="#pop!Operation"/>
|
||||
</context>
|
||||
|
||||
<context name="SQ_String" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
<DetectChar attribute="Char" context="Escape" char="\"/>
|
||||
</context>
|
||||
|
||||
<context name="DQ_String" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
<DetectChar attribute="Char" context="Escape" char="\"/>
|
||||
</context>
|
||||
|
||||
<context name="Escape" attribute="Char" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<AnyChar attribute="Char" context="#pop" String="bfnrt\'"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<!-- keywords -->
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Data Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Address Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Offset Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Modifier Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Control Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Instructions" bold="true" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Unknown Instructions" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Directives" bold="true" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="Memory" bold="true" defStyleNum="dsOthers"/>
|
||||
<itemData name="Functions" bold="true" defStyleNum="dsFunction"/>
|
||||
<!-- defined in contexts -->
|
||||
<itemData name="Comment" italic="false" defStyleNum="dsComment"/>
|
||||
<itemData name="Label" defStyleNum="dsFunction"/>
|
||||
<itemData name="Local label" defStyleNum="dsFunction"/>
|
||||
<itemData name="Constant" defStyleNum="dsConstant"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Binary" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Number" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Symbol Separator" defStyleNum="dsOperator"/>
|
||||
<itemData name="Symbols" defStyleNum="dsOperator"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<keywords casesensitive="0" weakDeliminator="@"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start=";"/>
|
||||
</comments>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,717 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
|
||||
<language name="Motorola 68k (VASM/Devpac)" section="Assembler" version="5" kateversion="5.62" extensions="*.s;*.i;*.S;*.I" author="Miro Kropacek (miro.kropacek@gmail.com)" license="LGPL">
|
||||
|
||||
<highlighting>
|
||||
<list name="Data Registers">
|
||||
<item>d0</item>
|
||||
<item>d1</item>
|
||||
<item>d2</item>
|
||||
<item>d3</item>
|
||||
<item>d4</item>
|
||||
<item>d5</item>
|
||||
<item>d6</item>
|
||||
<item>d7</item>
|
||||
</list>
|
||||
|
||||
<list name="Address Registers">
|
||||
<item>a0</item>
|
||||
<item>a1</item>
|
||||
<item>a2</item>
|
||||
<item>a3</item>
|
||||
<item>a4</item>
|
||||
<item>a5</item>
|
||||
<item>a6</item>
|
||||
<item>a7</item>
|
||||
<item>sp</item>
|
||||
</list>
|
||||
|
||||
<list name="Control Registers">
|
||||
<item>ccr</item>
|
||||
<item>sr</item>
|
||||
<item>pc</item>
|
||||
<item>zpc</item>
|
||||
<item>ssp</item>
|
||||
<item>usp</item>
|
||||
<item>msp</item>
|
||||
<item>isp</item>
|
||||
<item>dfc</item>
|
||||
<item>cacr</item>
|
||||
<item>caar</item>
|
||||
<item>vbr</item>
|
||||
<item>crp</item>
|
||||
<item>srp</item>
|
||||
<item>urp</item>
|
||||
<item>tc</item>
|
||||
<item>tt0</item>
|
||||
<item>tt1</item>
|
||||
<item>mmusr</item>
|
||||
<item>itt0</item>
|
||||
<item>itt1</item>
|
||||
<item>dtt0</item>
|
||||
<item>dtt1</item>
|
||||
<item>buscr</item>
|
||||
<item>pcr</item>
|
||||
<item>ic</item>
|
||||
<!-- <item>dc</item> -->
|
||||
<item>bc</item>
|
||||
</list>
|
||||
|
||||
<list name="FPU Registers">
|
||||
<item>fp0</item>
|
||||
<item>fp1</item>
|
||||
<item>fp2</item>
|
||||
<item>fp3</item>
|
||||
<item>fp4</item>
|
||||
<item>fp5</item>
|
||||
<item>fp6</item>
|
||||
<item>fp7</item>
|
||||
<item>fpcr></item>
|
||||
<item>fpsr</item>
|
||||
<item>fpiar</item>
|
||||
</list>
|
||||
|
||||
<list name="Branch Instructions (CPU)">
|
||||
<item>bcc</item>
|
||||
<item>bcs</item>
|
||||
<item>beq</item>
|
||||
<item>bge</item>
|
||||
<item>bgt</item>
|
||||
<item>bhi</item>
|
||||
<item>ble</item>
|
||||
<item>bls</item>
|
||||
<item>blt</item>
|
||||
<item>bmi</item>
|
||||
<item>bne</item>
|
||||
<item>bpl</item>
|
||||
<item>bvc</item>
|
||||
<item>bvs</item>
|
||||
<item>bra</item>
|
||||
<item>bsr</item>
|
||||
<item>dbcc</item>
|
||||
<item>dbcs</item>
|
||||
<item>dbeq</item>
|
||||
<item>dbge</item>
|
||||
<item>dbgt</item>
|
||||
<item>dbhi</item>
|
||||
<item>dble</item>
|
||||
<item>dbls</item>
|
||||
<item>dblt</item>
|
||||
<item>dbmi</item>
|
||||
<item>dbne</item>
|
||||
<item>dbpl</item>
|
||||
<item>dbvc</item>
|
||||
<item>dbvs</item>
|
||||
<item>dbt</item>
|
||||
<item>dbf</item>
|
||||
<item>dbra</item>
|
||||
<item>jmp</item>
|
||||
</list>
|
||||
|
||||
<list name="Instructions (CPU)">
|
||||
<item>abcd</item>
|
||||
<item>adda</item>
|
||||
<item>addi</item>
|
||||
<item>add</item>
|
||||
<item>addq</item>
|
||||
<item>addx</item>
|
||||
<item>andi</item>
|
||||
<item>and</item>
|
||||
<item>asl</item>
|
||||
<item>asr</item>
|
||||
<item>bchg</item>
|
||||
<item>bclr</item>
|
||||
<item>bfchg</item>
|
||||
<item>bfclr</item>
|
||||
<item>bfexts</item>
|
||||
<item>bfextu</item>
|
||||
<item>bfffo</item>
|
||||
<item>bfins</item>
|
||||
<item>bfset</item>
|
||||
<item>bftst</item>
|
||||
<item>bhs</item>
|
||||
<item>bkpt</item>
|
||||
<item>blo</item>
|
||||
<item>bset</item>
|
||||
<item>btst</item>
|
||||
<item>callm</item>
|
||||
<item>cas2</item>
|
||||
<item>cas</item>
|
||||
<item>chk2</item>
|
||||
<item>chk</item>
|
||||
<item>cinva</item>
|
||||
<item>cinvl</item>
|
||||
<item>cinvp</item>
|
||||
<item>clr</item>
|
||||
<item>cmp2</item>
|
||||
<item>cmpa</item>
|
||||
<item>cmpi</item>
|
||||
<item>cmp</item>
|
||||
<item>cmpm</item>
|
||||
<item>cpusha</item>
|
||||
<item>cpushl</item>
|
||||
<item>cpushp</item>
|
||||
<item>dbhs</item>
|
||||
<item>dblo</item>
|
||||
<item>dbvc</item>
|
||||
<item>dbvs</item>
|
||||
<item>divs</item>
|
||||
<item>divsl</item>
|
||||
<item>divu</item>
|
||||
<item>divul</item>
|
||||
<item>eori</item>
|
||||
<item>eor</item>
|
||||
<item>exg</item>
|
||||
<item>extb</item>
|
||||
<item>ext</item>
|
||||
<item>illegal</item>
|
||||
<item>jsr</item>
|
||||
<item>lea</item>
|
||||
<item>link</item>
|
||||
<item>lpstop</item>
|
||||
<item>lsl</item>
|
||||
<item>lsr</item>
|
||||
<item>move16</item>
|
||||
<item>movea</item>
|
||||
<item>movec</item>
|
||||
<item>move</item>
|
||||
<item>movem</item>
|
||||
<item>movep</item>
|
||||
<item>moveq</item>
|
||||
<item>moves</item>
|
||||
<item>muls</item>
|
||||
<item>mulu</item>
|
||||
<item>nbcd</item>
|
||||
<item>neg</item>
|
||||
<item>negx</item>
|
||||
<item>nop</item>
|
||||
<item>not</item>
|
||||
<item>ori</item>
|
||||
<item>or</item>
|
||||
<item>pack</item>
|
||||
<item>pea</item>
|
||||
<item>pflusha</item>
|
||||
<item>pflushan</item>
|
||||
<item>pflush</item>
|
||||
<item>pflushn</item>
|
||||
<item>ploadr</item>
|
||||
<item>ploadw</item>
|
||||
<item>plpa</item>
|
||||
<item>pmovefd</item>
|
||||
<item>pmove</item>
|
||||
<item>ptestr</item>
|
||||
<item>ptestw</item>
|
||||
<item>reset</item>
|
||||
<item>rol</item>
|
||||
<item>ror</item>
|
||||
<item>roxl</item>
|
||||
<item>roxr</item>
|
||||
<item>rtd</item>
|
||||
<item>rte</item>
|
||||
<item>rtm</item>
|
||||
<item>rtr</item>
|
||||
<item>rts</item>
|
||||
<item>sbcd</item>
|
||||
<item>scc</item>
|
||||
<item>scs</item>
|
||||
<item>seq</item>
|
||||
<item>sf</item>
|
||||
<item>sge</item>
|
||||
<item>sgt</item>
|
||||
<item>shi</item>
|
||||
<item>shs</item>
|
||||
<item>sle</item>
|
||||
<item>slo</item>
|
||||
<item>sls</item>
|
||||
<item>slt</item>
|
||||
<item>smi</item>
|
||||
<item>sne</item>
|
||||
<item>spl</item>
|
||||
<item>st</item>
|
||||
<item>stop</item>
|
||||
<item>suba</item>
|
||||
<item>subi</item>
|
||||
<item>sub</item>
|
||||
<item>subq</item>
|
||||
<item>subx</item>
|
||||
<item>svc</item>
|
||||
<item>svs</item>
|
||||
<item>swap</item>
|
||||
<item>tas</item>
|
||||
<item>trapcc</item>
|
||||
<item>trapcs</item>
|
||||
<item>trapeq</item>
|
||||
<item>trapf</item>
|
||||
<item>trapge</item>
|
||||
<item>trapgt</item>
|
||||
<item>traphi</item>
|
||||
<item>traphs</item>
|
||||
<item>trap</item>
|
||||
<item>traple</item>
|
||||
<item>traplo</item>
|
||||
<item>trapls</item>
|
||||
<item>traplt</item>
|
||||
<item>trapmi</item>
|
||||
<item>trapne</item>
|
||||
<item>trappl</item>
|
||||
<item>trapt</item>
|
||||
<item>trapvc</item>
|
||||
<item>trapvc</item>
|
||||
<item>trapv</item>
|
||||
<item>tst</item>
|
||||
<item>unlk</item>
|
||||
<item>unpk</item>
|
||||
</list>
|
||||
|
||||
<list name="Instructions (FPU)">
|
||||
<item>fabs</item>
|
||||
<item>facos</item>
|
||||
<item>fadd</item>
|
||||
<item>fasin</item>
|
||||
<item>fatanh</item>
|
||||
<item>fatan</item>
|
||||
<item>fbeq</item>
|
||||
<item>fbf</item>
|
||||
<item>fbge</item>
|
||||
<item>fbgle</item>
|
||||
<item>fbgl</item>
|
||||
<item>fbgt</item>
|
||||
<item>fble</item>
|
||||
<item>fblt</item>
|
||||
<item>fbne</item>
|
||||
<item>fbnge</item>
|
||||
<item>fbngle</item>
|
||||
<item>fbngl</item>
|
||||
<item>fbngt</item>
|
||||
<item>fbnle</item>
|
||||
<item>fbnlt</item>
|
||||
<item>fboge</item>
|
||||
<item>fbogl</item>
|
||||
<item>fbogt</item>
|
||||
<item>fbole</item>
|
||||
<item>fbolt</item>
|
||||
<item>fbor</item>
|
||||
<item>fbseq</item>
|
||||
<item>fbsf</item>
|
||||
<item>fbsne</item>
|
||||
<item>fbst</item>
|
||||
<item>fbt</item>
|
||||
<item>fbueq</item>
|
||||
<item>fbuge</item>
|
||||
<item>fbugt</item>
|
||||
<item>fbule</item>
|
||||
<item>fbult</item>
|
||||
<item>fbun</item>
|
||||
<item>fcmp</item>
|
||||
<item>fcosh</item>
|
||||
<item>fcos</item>
|
||||
<item>fdabs</item>
|
||||
<item>fdadd</item>
|
||||
<item>fdbeq</item>
|
||||
<item>fdbf</item>
|
||||
<item>fdbge</item>
|
||||
<item>fdbgle</item>
|
||||
<item>fdbgl</item>
|
||||
<item>fdbgt</item>
|
||||
<item>fdble</item>
|
||||
<item>fdblt</item>
|
||||
<item>fdbne</item>
|
||||
<item>fdbnge</item>
|
||||
<item>fdbngle</item>
|
||||
<item>fdbngl</item>
|
||||
<item>fdbngt</item>
|
||||
<item>fdbnle</item>
|
||||
<item>fdbnlt</item>
|
||||
<item>fdboge</item>
|
||||
<item>fdbogl</item>
|
||||
<item>fdbogt</item>
|
||||
<item>fdbole</item>
|
||||
<item>fdbolt</item>
|
||||
<item>fdbor</item>
|
||||
<item>fdbseq</item>
|
||||
<item>fdbsf</item>
|
||||
<item>fdbsne</item>
|
||||
<item>fdbst</item>
|
||||
<item>fdbt</item>
|
||||
<item>fdbueq</item>
|
||||
<item>fdbuge</item>
|
||||
<item>fdbugt</item>
|
||||
<item>fdbule</item>
|
||||
<item>fdbult</item>
|
||||
<item>fdbun</item>
|
||||
<item>fddiv</item>
|
||||
<item>fdiv</item>
|
||||
<item>fdmove</item>
|
||||
<item>fdmul</item>
|
||||
<item>fdneg</item>
|
||||
<item>fdsqrt</item>
|
||||
<item>fdsub</item>
|
||||
<item>fetox</item>
|
||||
<item>fetoxm1</item>
|
||||
<item>fgetexp</item>
|
||||
<item>fgetman</item>
|
||||
<item>fint</item>
|
||||
<item>fintrz</item>
|
||||
<item>flog10</item>
|
||||
<item>flog2</item>
|
||||
<item>flogn</item>
|
||||
<item>flognp1</item>
|
||||
<item>fmod</item>
|
||||
<item>fmovecr</item>
|
||||
<item>fmove</item>
|
||||
<item>fmovem</item>
|
||||
<item>fmul</item>
|
||||
<item>fneg</item>
|
||||
<item>fnop</item>
|
||||
<item>frem</item>
|
||||
<item>frestore</item>
|
||||
<item>fsabs</item>
|
||||
<item>fsadd</item>
|
||||
<item>fsave</item>
|
||||
<item>fscale</item>
|
||||
<item>fsdiv</item>
|
||||
<item>fseq</item>
|
||||
<item>fsf</item>
|
||||
<item>fsge</item>
|
||||
<item>fsgldiv</item>
|
||||
<item>fsgle</item>
|
||||
<item>fsgl</item>
|
||||
<item>fsglmul</item>
|
||||
<item>fsgt</item>
|
||||
<item>fsincos</item>
|
||||
<item>fsinh</item>
|
||||
<item>fsin</item>
|
||||
<item>fsle</item>
|
||||
<item>fslt</item>
|
||||
<item>fsmove</item>
|
||||
<item>fsmul</item>
|
||||
<item>fsneg</item>
|
||||
<item>fsne</item>
|
||||
<item>fsnge</item>
|
||||
<item>fsngle</item>
|
||||
<item>fsngl</item>
|
||||
<item>fsngt</item>
|
||||
<item>fsnle</item>
|
||||
<item>fsnlt</item>
|
||||
<item>fsoge</item>
|
||||
<item>fsogl</item>
|
||||
<item>fsogt</item>
|
||||
<item>fsole</item>
|
||||
<item>fsolt</item>
|
||||
<item>fsor</item>
|
||||
<item>fsqrt</item>
|
||||
<item>fsseq</item>
|
||||
<item>fssf</item>
|
||||
<item>fssne</item>
|
||||
<item>fssqrt</item>
|
||||
<item>fsst</item>
|
||||
<item>fssub</item>
|
||||
<item>fst</item>
|
||||
<item>fsub</item>
|
||||
<item>fsueq</item>
|
||||
<item>fsuge</item>
|
||||
<item>fsugt</item>
|
||||
<item>fsule</item>
|
||||
<item>fsult</item>
|
||||
<item>fsun</item>
|
||||
<item>ftanh</item>
|
||||
<item>ftan</item>
|
||||
<item>ftentox</item>
|
||||
<item>ftrapeq</item>
|
||||
<item>ftrapf</item>
|
||||
<item>ftrapge</item>
|
||||
<item>ftrapgle</item>
|
||||
<item>ftrapgl</item>
|
||||
<item>ftrapgt</item>
|
||||
<item>ftraple</item>
|
||||
<item>ftraplt</item>
|
||||
<item>ftrapne</item>
|
||||
<item>ftrapnge</item>
|
||||
<item>ftrapngle</item>
|
||||
<item>ftrapngl</item>
|
||||
<item>ftrapngt</item>
|
||||
<item>ftrapnle</item>
|
||||
<item>ftrapnlt</item>
|
||||
<item>ftrapoge</item>
|
||||
<item>ftrapogl</item>
|
||||
<item>ftrapogt</item>
|
||||
<item>ftrapole</item>
|
||||
<item>ftrapolt</item>
|
||||
<item>ftrapor</item>
|
||||
<item>ftrapseq</item>
|
||||
<item>ftrapsf</item>
|
||||
<item>ftrapsne</item>
|
||||
<item>ftrapst</item>
|
||||
<item>ftrapt</item>
|
||||
<item>ftrapueq</item>
|
||||
<item>ftrapuge</item>
|
||||
<item>ftrapugt</item>
|
||||
<item>ftrapule</item>
|
||||
<item>ftrapult</item>
|
||||
<item>ftrapun</item>
|
||||
<item>ftst</item>
|
||||
<item>ftwotox</item>
|
||||
</list>
|
||||
|
||||
<list name="Directives">
|
||||
<item>align</item>
|
||||
<item>blk</item>
|
||||
<item>bss</item>
|
||||
<item>clrfo</item>
|
||||
<item>clrso</item>
|
||||
<item>cnop</item>
|
||||
<item>code</item>
|
||||
<item>cseg</item>
|
||||
<item>data</item>
|
||||
<item>dc</item>
|
||||
<item>dcb</item>
|
||||
<item>ds</item>
|
||||
<item>dseg</item>
|
||||
<item>else</item>
|
||||
<item>end</item>
|
||||
<item>endc</item>
|
||||
<item>endif</item>
|
||||
<item>endm</item>
|
||||
<item>endr</item>
|
||||
<item>equ</item>
|
||||
<item>even</item>
|
||||
<item>fo</item>
|
||||
<item>idnt</item>
|
||||
<item>if</item>
|
||||
<item>ifeq</item>
|
||||
<item>ifne</item>
|
||||
<item>ifgt</item>
|
||||
<item>ifge</item>
|
||||
<item>iflt</item>
|
||||
<item>ifle</item>
|
||||
<item>ifd</item>
|
||||
<item>ifnd</item>
|
||||
<item>ifc</item>
|
||||
<item>ifnc</item>
|
||||
<item>incbin</item>
|
||||
<item>incdir</item>
|
||||
<item>include</item>
|
||||
<item>macro</item>
|
||||
<item>org</item>
|
||||
<item>public</item>
|
||||
<item>rept</item>
|
||||
<item>rs</item>
|
||||
<item>rsreset</item>
|
||||
<item>rsset</item>
|
||||
<item>section</item>
|
||||
<item>set</item>
|
||||
<item>setfo</item>
|
||||
<item>setso</item>
|
||||
<item>so</item>
|
||||
<item>text</item>
|
||||
<item>ttl</item>
|
||||
<item>xdef</item>
|
||||
<item>xref</item>
|
||||
<item>sdreg</item>
|
||||
<item>cpu32</item>
|
||||
<item>far</item>
|
||||
<item>fpu</item>
|
||||
<item>machine</item>
|
||||
<item>mc68000</item>
|
||||
<item>mc68010</item>
|
||||
<item>mc68020</item>
|
||||
<item>mc68030</item>
|
||||
<item>mc68040</item>
|
||||
<item>mc68060</item>
|
||||
<item>mcf5200</item>
|
||||
<item>mcf5206</item>
|
||||
<item>mcf5307</item>
|
||||
<item>mcf5407</item>
|
||||
<item>near</item>
|
||||
<item>opt</item>
|
||||
<item>equr</item>
|
||||
<item>equrl</item>
|
||||
<item>fequr</item>
|
||||
<item>fequrl</item>
|
||||
<item>freg</item>
|
||||
<item>reg</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" fallthroughContext="SuffixInstruction">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
|
||||
<DetectChar attribute="Comment" context="Comment" char="*" firstNonSpace="1"/>
|
||||
|
||||
<DetectIdentifier attribute="Label" context="Label" column="0"/>
|
||||
<DetectChar attribute="Local label" context="LocalLabel" char="." column="0"/>
|
||||
|
||||
<keyword attribute="Instructions (CPU)" context="SuffixInstruction" String="Instructions (CPU)"/>
|
||||
<keyword attribute="Branch Instructions (CPU)" context="SuffixInstruction" String="Branch Instructions (CPU)"/>
|
||||
<keyword attribute="Instructions (FPU)" context="SuffixInstruction" String="Instructions (FPU)"/>
|
||||
<keyword attribute="Directives" context="SuffixInstruction" String="Directives"/>
|
||||
|
||||
<RegExpr attribute="Label" context="EndLabel" String="[a-zA-Z][a-zA-Z0-9._]*+(?=:)"/>
|
||||
<RegExpr attribute="Local label" context="EndLabel" String="\.[A-Za-z_][a-zA-Z0-9._]*+(?=:)"/>
|
||||
|
||||
<DetectIdentifier attribute="Unknown Instructions" context="SuffixInstruction"/>
|
||||
</context>
|
||||
|
||||
<context name="SuffixInstruction" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Operation">
|
||||
<DetectSpaces attribute="Normal Text" context="#pop!Operation"/>
|
||||
<RegExpr attribute="Operand sizes (CPU)" context="#pop!Operation" String="\.[bwlsBWLS](?=\s)"/>
|
||||
<RegExpr attribute="Operand sizes (FPU)" context="#pop!Operation" String="\.[dpqxDPQX](?=\s)"/>
|
||||
</context>
|
||||
|
||||
<context name="Operation" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="Expression">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="Constant" context="Addressing Mode" char="#"/>
|
||||
</context>
|
||||
|
||||
<context name="Addressing Mode" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop!Constant_Expression">
|
||||
<AnyChar attribute="Constant" context="#pop!Constant_Expression" String="<>"/>
|
||||
</context>
|
||||
|
||||
<context name="Expression" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Hex" context="Number16" char="$"/>
|
||||
<DetectChar attribute="Binary" context="Number2" char="%"/>
|
||||
<DetectChar attribute="Number" context="Number8" char="@"/>
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<Int attribute="Number" context="#stay"/>
|
||||
<IncludeRules context="Inc_Expression"/>
|
||||
<DetectIdentifier attribute="Normal Text"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Expression" attribute="Constant" lineEndContext="#pop">
|
||||
<DetectChar attribute="Constant" context="Constant_Number16" char="$"/>
|
||||
<DetectChar attribute="Constant" context="Constant_Number2" char="%"/>
|
||||
<DetectChar attribute="Constant" context="Constant_Number8" char="@"/>
|
||||
<Float attribute="Constant" context="#stay"/>
|
||||
<Int attribute="Constant" context="#stay"/>
|
||||
<IncludeRules context="Inc_Expression"/>
|
||||
<DetectIdentifier attribute="Label"/>
|
||||
</context>
|
||||
|
||||
<context name="Inc_Expression" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Comment" context="#pop!Comment" char=";"/>
|
||||
<DetectChar attribute="Symbol Separator" context="#pop" char=","/>
|
||||
<DetectSpaces attribute="Normal Text" context="#pop"/>
|
||||
<AnyChar attribute="Symbols" context="#stay" String="+-*/%?&|<>^!=[]{}()"/>
|
||||
|
||||
<DetectChar attribute="String" context="SQ_String" char="'"/>
|
||||
<DetectChar attribute="String" context="DQ_String" char="""/>
|
||||
|
||||
<keyword attribute="Data Registers" context="#stay" String="Data Registers"/>
|
||||
<keyword attribute="Address Registers" context="#stay" String="Address Registers"/>
|
||||
<keyword attribute="Control Registers" context="#stay" String="Control Registers"/>
|
||||
<keyword attribute="FPU Registers" context="#stay" String="FPU Registers"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Number16" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Constant" context="#pop" String="[A-Fa-f0-9]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Number2" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Constant" context="#pop" String="[01]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Constant_Number8" attribute="Constant" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Constant" context="#pop" String="[0-7]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Number16" attribute="Hex" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Hex" context="#pop" String="[A-Fa-f0-9]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Number2" attribute="Binary" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Binary" context="#pop" String="[01]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Number8" attribute="Octal" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Octal" context="#pop" String="[0-7]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Label" attribute="Label" lineEndContext="#pop" fallthroughContext="#pop!EndLabel">
|
||||
<DetectChar attribute="Label" context="Label2" char="."/>
|
||||
</context>
|
||||
<context name="Label2" attribute="Label" lineEndContext="#pop" fallthroughContext="#pop#pop!EndLabel">
|
||||
<DetectIdentifier attribute="Label" context="#stay"/>
|
||||
<DetectChar attribute="Label" context="#stay" char="."/>
|
||||
</context>
|
||||
|
||||
<context name="LocalLabel" attribute="Local label" lineEndContext="#pop" fallthroughContext="#pop!EndLabel">
|
||||
<DetectChar attribute="Local label" context="LocalLabel2" char="."/>
|
||||
</context>
|
||||
<context name="LocalLabel2" attribute="Local label" lineEndContext="#pop" fallthroughContext="#pop#pop!EndLabel">
|
||||
<DetectIdentifier attribute="Local label" context="#stay"/>
|
||||
<DetectChar attribute="Local label" context="#stay" char="."/>
|
||||
</context>
|
||||
|
||||
<context name="EndLabel" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<DetectChar attribute="Symbols" context="#stay" char=":"/>
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<keyword attribute="Instructions (CPU)" context="#pop!SuffixInstruction" String="Instructions (CPU)"/>
|
||||
<keyword attribute="Branch Instructions (CPU)" context="SuffixInstruction" String="Branch Instructions (CPU)"/>
|
||||
<keyword attribute="Instructions (FPU)" context="#pop!SuffixInstruction" String="Instructions (FPU)"/>
|
||||
<keyword attribute="Directives" context="#pop!SuffixInstruction" String="Directives"/>
|
||||
<DetectIdentifier attribute="Unknown Instructions" context="#pop!SuffixInstruction"/>
|
||||
</context>
|
||||
|
||||
<context name="SQ_String" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
<DetectChar attribute="Char" context="Escape" char="\"/>
|
||||
</context>
|
||||
|
||||
<context name="DQ_String" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
<DetectChar attribute="Char" context="Escape" char="\"/>
|
||||
</context>
|
||||
|
||||
<context name="Escape" attribute="Char" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<AnyChar attribute="Char" context="#pop" String="bfnrt\'"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<!-- keywords -->
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Data Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Address Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Control Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="FPU Registers" defStyleNum="dsDataType"/>
|
||||
<itemData name="Instructions (CPU)" bold="true" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Instructions (FPU)" bold="true" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Branch Instructions (CPU)" bold="true" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="Unknown Instructions" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Directives" bold="true" defStyleNum="dsBuiltIn"/>
|
||||
<!-- defined in contexts -->
|
||||
<itemData name="Operand sizes (CPU)" bold="true" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Operand sizes (FPU)" bold="true" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Comment" italic="false" defStyleNum="dsComment"/>
|
||||
<itemData name="Label" defStyleNum="dsFunction"/>
|
||||
<itemData name="Local label" defStyleNum="dsFunction"/>
|
||||
<itemData name="Constant" defStyleNum="dsConstant"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Binary" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Number" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Symbol Separator" defStyleNum="dsOperator"/>
|
||||
<itemData name="Symbols" defStyleNum="dsOperator"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<keywords casesensitive="0"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start=";"/>
|
||||
</comments>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,243 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="Asm6502" version="7" kateversion="5.62" section="Assembler" extensions="*.asm" mimetype="text/x-asm6502">
|
||||
<highlighting>
|
||||
|
||||
<list name="Directives">
|
||||
<item>.align</item>
|
||||
<item>.asc</item>
|
||||
<item>.bss</item>
|
||||
<item>.byt</item>
|
||||
<item>.byte</item>
|
||||
<item>.data</item>
|
||||
<item>.db</item>
|
||||
<item>.dsb</item>
|
||||
<item>.dsw</item>
|
||||
<item>.dw</item>
|
||||
<item>.ende</item>
|
||||
<item>.endm</item>
|
||||
<item>.ends</item>
|
||||
<item>.endst</item>
|
||||
<item>.enum</item>
|
||||
<item>.fopt</item>
|
||||
<item>.incbin</item>
|
||||
<item>.include</item>
|
||||
<item>.macro</item>
|
||||
<item>.memorymap</item>
|
||||
<item>.org</item>
|
||||
<item>.struct</item>
|
||||
<item>.text</item>
|
||||
<item>.word</item>
|
||||
<item>.zero</item>
|
||||
<item>db</item>
|
||||
<item>dsb</item>
|
||||
<item>dsw</item>
|
||||
<item>dw</item>
|
||||
<item>instanceof</item>
|
||||
</list>
|
||||
|
||||
<list name="Branch Instructions">
|
||||
<item>bcc</item>
|
||||
<item>bcs</item>
|
||||
<item>beq</item>
|
||||
<item>bmi</item>
|
||||
<item>bne</item>
|
||||
<item>bpl</item>
|
||||
<item>brk</item>
|
||||
<item>bvc</item>
|
||||
<item>bvs</item>
|
||||
<item>jmp</item>
|
||||
<item>jsr</item>
|
||||
<item>rti</item>
|
||||
<item>rts</item>
|
||||
|
||||
<!-- asm 65816 -->
|
||||
<item>bra</item>
|
||||
<item>brl</item>
|
||||
<item>jml</item>
|
||||
<item>jsl</item>
|
||||
<item>rtl</item>
|
||||
<item>cop</item>
|
||||
<item>wai</item>
|
||||
</list>
|
||||
|
||||
<list name="Instructions">
|
||||
<item>adc</item>
|
||||
<item>and</item>
|
||||
<item>asl</item>
|
||||
<item>bit</item>
|
||||
<item>clc</item>
|
||||
<item>cld</item>
|
||||
<item>cli</item>
|
||||
<item>clv</item>
|
||||
<item>cmp</item>
|
||||
<item>cpx</item>
|
||||
<item>cpy</item>
|
||||
<item>dec</item>
|
||||
<item>dex</item>
|
||||
<item>dey</item>
|
||||
<item>eor</item>
|
||||
<item>inc</item>
|
||||
<item>inx</item>
|
||||
<item>iny</item>
|
||||
<item>lda</item>
|
||||
<item>ldx</item>
|
||||
<item>ldy</item>
|
||||
<item>lsr</item>
|
||||
<item>nop</item>
|
||||
<item>ora</item>
|
||||
<item>pha</item>
|
||||
<item>php</item>
|
||||
<item>pla</item>
|
||||
<item>plp</item>
|
||||
<item>rol</item>
|
||||
<item>ror</item>
|
||||
<item>sbc</item>
|
||||
<item>sec</item>
|
||||
<item>sed</item>
|
||||
<item>sei</item>
|
||||
<item>sta</item>
|
||||
<item>stx</item>
|
||||
<item>sty</item>
|
||||
<item>tax</item>
|
||||
<item>tay</item>
|
||||
<item>tsx</item>
|
||||
<item>txa</item>
|
||||
<item>txs</item>
|
||||
<item>tya</item>
|
||||
|
||||
<!-- asm 65816 -->
|
||||
<item>bge</item>
|
||||
<item>blt</item>
|
||||
<item>dea</item>
|
||||
<item>ina</item>
|
||||
<item>lda.b</item>
|
||||
<item>lda.w</item>
|
||||
<item>ldx.b</item>
|
||||
<item>ldx.w</item>
|
||||
<item>ldy.b</item>
|
||||
<item>ldy.w</item>
|
||||
<item>mvn</item>
|
||||
<item>pea</item>
|
||||
<item>pei</item>
|
||||
<item>phb</item>
|
||||
<item>phd</item>
|
||||
<item>phk</item>
|
||||
<item>phx</item>
|
||||
<item>phy</item>
|
||||
<item>plb</item>
|
||||
<item>pld</item>
|
||||
<item>plx</item>
|
||||
<item>ply</item>
|
||||
<item>rep</item>
|
||||
<item>sep</item>
|
||||
<item>stz</item>
|
||||
<item>tcd</item>
|
||||
<item>txy</item>
|
||||
<item>tyx</item>
|
||||
<item>xba</item>
|
||||
<item>xce</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Base" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="Comment" context="Comment" char=";"/>
|
||||
|
||||
<RegExpr attribute="Label" context="AfterLabel" String="[a-zA-Z][a-zA-Z0-9._]*+:|[+-]+:"/>
|
||||
|
||||
<keyword attribute="Directive" context="Instruction" String="Directives" insensitive="1"/>
|
||||
<keyword attribute="Instruction" context="Instruction" String="Instructions" insensitive="1"/>
|
||||
<keyword attribute="Branch Instruction" context="Instruction" String="Branch Instructions" insensitive="1"/>
|
||||
<DetectChar attribute="Directive" context="Directive" char="."/>
|
||||
<DetectIdentifier attribute="Unknown Instruction" context="Instruction"/>
|
||||
</context>
|
||||
|
||||
<context name="AfterLabel" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Instruction">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="Comment" context="#pop!Comment" char=";"/>
|
||||
|
||||
<keyword attribute="Directive" context="#pop!Instruction" String="Directives" insensitive="1"/>
|
||||
<keyword attribute="Instruction" context="#pop!Instruction" String="Instructions" insensitive="1"/>
|
||||
<keyword attribute="Branch Instruction" context="#pop!Instruction" String="Branch Instructions" insensitive="1"/>
|
||||
<DetectChar attribute="Directive" context="Directive" char="."/>
|
||||
<DetectIdentifier attribute="Unknown Instruction" context="#pop!Instruction"/>
|
||||
</context>
|
||||
|
||||
<context name="Instruction" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="Comment" context="#pop!Comment" char=";"/>
|
||||
|
||||
<DetectChar attribute="Hex" context="Number16" char="$"/>
|
||||
<DetectChar attribute="Binary" context="Number2" char="%"/>
|
||||
<DetectChar attribute="Octal" context="Number8" char="@"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
|
||||
<DetectChar attribute="Symbol Separator" context="Register" char="," lookAhead="1"/>
|
||||
<DetectChar attribute="Keyword" context="#stay" char="#"/>
|
||||
|
||||
<DetectIdentifier attribute="Normal Text" context="#stay"/>
|
||||
|
||||
<RangeDetect attribute="String" context="#stay" char=""" char1="""/>
|
||||
<AnyChar attribute="Operator" context="#stay" String="-+<>=\&|^~"/>
|
||||
</context>
|
||||
|
||||
<context name="Directive" attribute="Directive" lineEndContext="#pop" fallthroughContext="#pop!Instruction">
|
||||
<DetectIdentifier attribute="Unknown Directive" context="#pop!Instruction"/>
|
||||
</context>
|
||||
|
||||
<context name="Register" attribute="Normal Text" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Keyword" context="#pop" char="," char1="X"/>
|
||||
<Detect2Chars attribute="Keyword" context="#pop" char="," char1="Y"/>
|
||||
<Detect2Chars attribute="Keyword" context="#pop" char="," char1="x"/>
|
||||
<Detect2Chars attribute="Keyword" context="#pop" char="," char1="y"/>
|
||||
<DetectChar attribute="Symbol Separator" context="#pop" char=","/>
|
||||
</context>
|
||||
|
||||
<context name="Number16" attribute="Hex" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Hex" context="#pop" String="[A-Fa-f0-9]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Number2" attribute="Binary" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Binary" context="#pop" String="[01]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Number8" attribute="Octal" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Octal" context="#pop" String="[0-7]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Label" defStyleNum="dsFunction"/>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Instruction" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Unknown Instruction" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Branch Instruction" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Directive" defStyleNum="dsDataType"/>
|
||||
<itemData name="Unknown Directive" defStyleNum="dsDataType"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Binary" defStyleNum="dsBaseN"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator"/>
|
||||
<itemData name="Symbol Separator" defStyleNum="dsOperator"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start=";"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1" weakDeliminator="." additionalDeliminator="#"/>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
You'll find the "Writing a Kate Highlighting XML File HOWTO" at http://kate.kde.org/doc/hlhowto.php
|
||||
This is a template for the XML format used for syntax highlight descriptions
|
||||
for the Kate text editor (http://kate.kde.org), which is part of the KDE
|
||||
desktop environment (http://www.kde.org).
|
||||
|
||||
Use it as the base for your own syntax files.
|
||||
|
||||
Look at language.dtd for some documentation of the allowed elements and their attributes.
|
||||
There is also a description of how to validate your syntax file.
|
||||
|
||||
You'll find the "Writing a Kate Highlighting XML File HOWTO" at http://kate.kde.org/doc/hlhowto.php
|
||||
-->
|
||||
<language name="ASN.1" section="Markup" version="6" kateversion="5.0" extensions="*.asn;*.asn1" mimetype="" author="Philippe Rigault" license="GPL">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>DEFINITIONS</item>
|
||||
<item>EXPORTS</item>
|
||||
<item>IMPORTS</item>
|
||||
<item>FROM</item>
|
||||
<item>APPLICATION</item>
|
||||
<item>PRIVATE</item>
|
||||
<item>UNIVERSAL</item>
|
||||
<item>DEFAULT</item>
|
||||
<item>OPTIONAL</item>
|
||||
<item>FALSE</item>
|
||||
<item>TRUE</item>
|
||||
<item>AUTOMATIC</item>
|
||||
<item>CLASS</item>
|
||||
<item>WITH</item>
|
||||
<item>SIZE</item>
|
||||
<item>TAGS</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>BOOLEAN</item>
|
||||
<item>INTEGER</item>
|
||||
<item>OCTET</item>
|
||||
<item>STRING</item>
|
||||
<item>NULL</item>
|
||||
<item>REAL</item>
|
||||
<item>ENUMERATED</item>
|
||||
<item>SEQUENCE</item>
|
||||
<item>SET</item>
|
||||
<item>CHOICE</item>
|
||||
<item>OF</item>
|
||||
<item>UNION</item>
|
||||
<item>StringStore</item>
|
||||
<item>GeneralString</item>
|
||||
<item>IA5String</item>
|
||||
<item>ISO64String</item>
|
||||
<item>NumericString</item>
|
||||
<item>PrintableString</item>
|
||||
<item>T61String</item>
|
||||
<item>TeletexString</item>
|
||||
<item>UniversalString</item>
|
||||
<item>UTF8String</item>
|
||||
<item>VideotexString</item>
|
||||
<item>VisibleString</item>
|
||||
<item>DATE</item>
|
||||
<item>DATE-TIME</item>
|
||||
<item>DURATION</item>
|
||||
<item>GeneralizedTime</item>
|
||||
<item>UTCTime</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<StringDetect attribute="Keyword" context="#stay" String="BEGIN" beginRegion="Block"/>
|
||||
<StringDetect attribute="Keyword" context="#stay" String="END" endRegion="Block"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types" />
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
|
||||
<Detect2Chars attribute="Comment" context="Multiline Comment" char="/" char1="*" beginRegion="Comment"/>
|
||||
<DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="BraceBlock"/>
|
||||
<DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="BraceBlock"/>
|
||||
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<DetectChar attribute="String" context="ctxString" char="""/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Multiline Comment">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#stay" name="ctxString">
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="--"/>
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!--
|
||||
// kate: space-indent on; indent-width 2; replace-tabs on;
|
||||
-->
|
||||
@@ -0,0 +1,398 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="ASP" version="9" kateversion="5.44" section="Markup" extensions="*.asp;" mimetype="text/x-asp-src;text/x-asp-src" author="Antonio Salazar (savedfastcool@gmail.com)" license="LGPL">
|
||||
<highlighting>
|
||||
<list name="control structures">
|
||||
<item>select</item>
|
||||
<item>case</item>
|
||||
<item>end select</item>
|
||||
|
||||
<item>if</item>
|
||||
<item>then</item>
|
||||
<item>else</item>
|
||||
<item>elseif</item>
|
||||
<item>end if</item>
|
||||
|
||||
|
||||
<item>while</item>
|
||||
<item>do</item>
|
||||
<item>until</item>
|
||||
<item>loop</item>
|
||||
<item>wend</item>
|
||||
|
||||
<item>for</item>
|
||||
<item>each</item>
|
||||
<item>to</item>
|
||||
<item>in</item>
|
||||
<item>next</item>
|
||||
|
||||
<item>exit</item>
|
||||
<item>continue</item>
|
||||
</list>
|
||||
<list name="keywords">
|
||||
<item>dim</item>
|
||||
<item>redim</item>
|
||||
<item>preserve</item>
|
||||
|
||||
<item>const</item>
|
||||
<item>erase</item>
|
||||
<item>nothing</item>
|
||||
<item>set</item>
|
||||
|
||||
<item>new</item>
|
||||
<item>me</item>
|
||||
|
||||
|
||||
<item>function</item>
|
||||
<item>sub</item>
|
||||
<item>call</item>
|
||||
|
||||
<item>class</item>
|
||||
<item>private</item>
|
||||
<item>public</item>
|
||||
<item>with</item>
|
||||
|
||||
<item>randomize</item>
|
||||
|
||||
<item>open</item>
|
||||
<item>close</item>
|
||||
<item>movenext</item>
|
||||
<item>execute</item>
|
||||
<item>eof</item>
|
||||
|
||||
<item>not</item>
|
||||
<item>true</item>
|
||||
<item>false</item>
|
||||
<item>or</item>
|
||||
<item>and</item>
|
||||
<item>xor</item>
|
||||
</list>
|
||||
<list name="functions">
|
||||
<item>response</item>
|
||||
<item>write</item>
|
||||
<item>redirect</item>
|
||||
<item>end</item>
|
||||
|
||||
<item>request</item>
|
||||
<item>form</item>
|
||||
<item>querystring</item>
|
||||
<item>servervariables</item>
|
||||
<item>cookies</item>
|
||||
|
||||
<item>session</item>
|
||||
|
||||
<item>server</item>
|
||||
<item>createobject</item>
|
||||
|
||||
<item>abs</item>
|
||||
<item>array</item>
|
||||
<item>asc</item>
|
||||
<item>atn</item>
|
||||
<item>cbool</item>
|
||||
<item>cbyte</item>
|
||||
<item>ccur</item>
|
||||
<item>cdate</item>
|
||||
<item>cdbl</item>
|
||||
<item>chr</item>
|
||||
<item>cint</item>
|
||||
<item>clng</item>
|
||||
<item>cos</item>
|
||||
<item>csng</item>
|
||||
<item>cstr</item>
|
||||
<item>date</item>
|
||||
<item>dateadd</item>
|
||||
|
||||
<item>DateDiff</item>
|
||||
<item>DatePart</item>
|
||||
<item>DateSerial</item>
|
||||
<item>DateValue</item>
|
||||
<item>Date</item>
|
||||
<item>Day</item>
|
||||
<item>Exp</item>
|
||||
<item>Filter</item>
|
||||
<item>Fix</item>
|
||||
<item>FormatCurrency</item>
|
||||
<item>FormatDateTime</item>
|
||||
<item>FormatNumber</item>
|
||||
<item>FormatPercent</item>
|
||||
|
||||
<item>GetObject</item>
|
||||
<item>Hex</item>
|
||||
<item>Hour</item>
|
||||
<item>InputBox</item>
|
||||
<item>InStr</item>
|
||||
<item>InStrRev</item>
|
||||
<item>Int</item>
|
||||
<item>IsArray</item>
|
||||
<item>IsDate</item>
|
||||
<item>IsEmpty</item>
|
||||
<item>IsNull</item>
|
||||
<item>IsNumeric</item>
|
||||
<item>IsObject</item>
|
||||
<item>Join</item>
|
||||
<item>LBound</item>
|
||||
<item>LCase</item>
|
||||
|
||||
<item>Left</item>
|
||||
<item>Len</item>
|
||||
<item>LoadPicture</item>
|
||||
<item>Log</item>
|
||||
<item>LTrim</item>
|
||||
<item>Mid</item>
|
||||
<item>Minute</item>
|
||||
<item>Month</item>
|
||||
<item>MonthName</item>
|
||||
<item>MsgBox</item>
|
||||
<item>Now</item>
|
||||
<item>Oct</item>
|
||||
<item>Replace</item>
|
||||
|
||||
<item>RGB</item>
|
||||
<item>Right</item>
|
||||
<item>Rnd</item>
|
||||
<item>Round</item>
|
||||
<item>RTrim</item>
|
||||
|
||||
<item>ScriptEngine</item>
|
||||
<item>ScriptEngineBuildVersion</item>
|
||||
<item>ScriptEngineMajorVersion</item>
|
||||
<item>ScriptEngineMinorVersion</item>
|
||||
<item>Second</item>
|
||||
<item>Sgn</item>
|
||||
<item>Sin</item>
|
||||
<item>Space</item>
|
||||
<item>Split</item>
|
||||
<item>Sqr</item>
|
||||
<item>StrComp</item>
|
||||
<item>StrReverse</item>
|
||||
<item>String</item>
|
||||
<item>Tan</item>
|
||||
<item>Time</item>
|
||||
<item>Timer</item>
|
||||
<item>TimeSerial</item>
|
||||
<item>TimeValue</item>
|
||||
<item>Trim</item>
|
||||
<item>TypeName</item>
|
||||
<item>UBound</item>
|
||||
<item>UCase</item>
|
||||
<item>VarType</item>
|
||||
<item>Weekday</item>
|
||||
<item>WeekdayName</item>
|
||||
<item>Year</item>
|
||||
|
||||
<item>Add</item>
|
||||
<item>AddFolders</item>
|
||||
<item>BuildPath</item>
|
||||
<item>Clear</item>
|
||||
<item>Close</item>
|
||||
<item>Copy</item>
|
||||
<item>CopyFile</item>
|
||||
<item>CopyFolder</item>
|
||||
<item>CreateFolder</item>
|
||||
<item>CreateTextFile</item>
|
||||
<item>Delete</item>
|
||||
<item>DeleteFile</item>
|
||||
<item>DeleteFolder</item>
|
||||
<item>DriveExists</item>
|
||||
<item>Exists</item>
|
||||
<item>FileExists</item>
|
||||
<item>FolderExists</item>
|
||||
<item>GetAbsolutePathName</item>
|
||||
<item>GetBaseName</item>
|
||||
<item>GetDrive</item>
|
||||
<item>GetDriveName</item>
|
||||
<item>GetExtensionName</item>
|
||||
<item>GetFile</item>
|
||||
<item>GetFileName</item>
|
||||
<item>GetFolder</item>
|
||||
<item>GetParentFolderName</item>
|
||||
|
||||
<item>GetSpecialFolder</item>
|
||||
<item>GetTempName</item>
|
||||
<item>Items</item>
|
||||
<item>item</item>
|
||||
<item>Keys</item>
|
||||
<item>Move</item>
|
||||
<item>MoveFile</item>
|
||||
<item>MoveFolder</item>
|
||||
<item>OpenAsTextStream</item>
|
||||
<item>OpenTextFile</item>
|
||||
<item>Raise</item>
|
||||
<item>Read</item>
|
||||
<item>ReadAll</item>
|
||||
<item>ReadLine</item>
|
||||
<item>Remove</item>
|
||||
<item>RemoveAll</item>
|
||||
<item>Skip</item>
|
||||
<item>SkipLine</item>
|
||||
<item>Write</item>
|
||||
<item>WriteBlankLines</item>
|
||||
<item>WriteLine</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="nosource" attribute="Normal Text" lineEndContext="#stay">
|
||||
<IncludeRules context="find-aspsource" />
|
||||
<RegExpr attribute="HTML Tag" context="aspsource" String="<\s*script\s*language="VBScript"[^>]*>" insensitive="true" />
|
||||
<RegExpr attribute="HTML Tag" context="scripts" String="<\s*script(?:\s|>|$)" insensitive="true" />
|
||||
<RegExpr attribute="HTML Tag" context="htmltag" String="<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
|
||||
<StringDetect attribute="HTML Comment" context="htmlcomment" String="<!--" beginRegion="HTMLComment" />
|
||||
</context>
|
||||
|
||||
<context name="find-aspsource" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="ASP Source" context="aspsource" char="<" char1="%" beginRegion="ASPSource" />
|
||||
</context>
|
||||
<context name="aspsource" attribute="ASP Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="ASP Source" context="#pop" char="%" char1=">" endRegion="ASPSource" />
|
||||
<RegExpr attribute="HTML Tag" context="#pop" String="<\s*\/\s*script\s*>" insensitive="true" />
|
||||
<DetectChar attribute="Comment" context="asp_onelinecomment" char="'" />
|
||||
<DetectChar attribute="String" context="doublequotestring" char=""" />
|
||||
<DetectChar attribute="Keyword" context="#stay" char="&" />
|
||||
<RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" />
|
||||
<HlCOct attribute="Octal" context="#stay" />
|
||||
<HlCHex attribute="Hex" context="#stay" />
|
||||
<Float attribute="Float" context="#stay" />
|
||||
<Int attribute="Decimal" context="#stay" />
|
||||
<AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
|
||||
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="elseif" insensitive="true" beginRegion="iffi1" endRegion="iffi1"/>
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="else" insensitive="true" beginRegion="iffi1" endRegion="iffi1"/>
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="if" insensitive="true" beginRegion="iffi1"/>
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="end if" insensitive="true" endRegion="iffi1"/>
|
||||
|
||||
<WordDetect attribute="Keyword" context="#stay" String="exit function" insensitive="true" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="function" insensitive="true" beginRegion="funendfun1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="end function" insensitive="true" endRegion="funendfun1"/>
|
||||
|
||||
<WordDetect attribute="Keyword" context="#stay" String="exit sub" insensitive="true" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="sub" insensitive="true" beginRegion="subendsub1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="end sub" insensitive="true" endRegion="subendsub1"/>
|
||||
|
||||
<WordDetect attribute="Keyword" context="#stay" String="class" insensitive="true" beginRegion="classendclass1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="end class" insensitive="true" endRegion="classendclass1"/>
|
||||
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="exit do" insensitive="true" />
|
||||
<RegExpr attribute="Control Structures" context="#stay" String="\bdo(?:\s+while)?\b" insensitive="true" beginRegion="doloop1"/>
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="loop" insensitive="true" endRegion="doloop1"/>
|
||||
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="exit while" insensitive="true" />
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="while" insensitive="true" beginRegion="whilewend1"/>
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="wend" insensitive="true" endRegion="whilewend1"/>
|
||||
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="exit for" insensitive="true" />
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="for" insensitive="true" beginRegion="fornext1"/>
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="next" insensitive="true" endRegion="fornext1"/>
|
||||
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="select case" insensitive="true" beginRegion="selcase1"/>
|
||||
<WordDetect attribute="Control Structures" context="#stay" String="end select" insensitive="true" endRegion="selcase1"/>
|
||||
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<keyword attribute="Control Structures" context="#stay" String="control structures" />
|
||||
<keyword attribute="Function" context="#stay" String="functions" />
|
||||
</context>
|
||||
<context name="asp_onelinecomment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars context="#pop" char="%" char1=">" lookAhead="true" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context name="doublequotestring" attribute="String" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Escape Code" context="#stay" char=""" char1=""" />
|
||||
<RegExpr attribute="Escape Code" context="#stay" String="\\[0-7]{1,3}|\\x[0-9A-Fa-f]{1,2}" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
</context>
|
||||
<context name="singlequotestring" attribute="String" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Escape Code" context="#stay" char="'" char1="'"/>
|
||||
<DetectChar attribute="String" context="#pop" char="'" />
|
||||
</context>
|
||||
<context name="htmltag" attribute="Identifier" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1=">" />
|
||||
<DetectChar attribute="HTML Tag" context="#pop" char=">"/>
|
||||
<IncludeRules context="find-aspsource" />
|
||||
<DetectChar attribute="Identifier" context="identifiers" char="="/>
|
||||
</context>
|
||||
<context name="htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="find-aspsource" />
|
||||
<StringDetect attribute="HTML Comment" context="#pop" String="-->" endRegion="HTMLComment" />
|
||||
<DetectChar attribute="Normal Text" context="identifiers" char="="/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context name="identifiers" attribute="Identifier" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
|
||||
<DetectChar attribute="Types" context="types1" char="'" />
|
||||
<DetectChar attribute="Types" context="types2" char=""" />
|
||||
</context>
|
||||
|
||||
<context name="types1" attribute="Types" lineEndContext="#stay">
|
||||
<IncludeRules context="find-aspsource" />
|
||||
<DetectChar attribute="Types" context="#pop#pop" char="'" />
|
||||
</context>
|
||||
|
||||
<context name="types2" attribute="Types" lineEndContext="#stay">
|
||||
<IncludeRules context="find-aspsource" />
|
||||
<DetectChar attribute="Types" context="#pop#pop" char=""" />
|
||||
</context>
|
||||
|
||||
<context name="scripts" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="scripts_onelinecomment" char="/" char1="/" />
|
||||
<Detect2Chars attribute="Comment" context="twolinecomment" char="/" char1="*" beginRegion="ScriptComment" />
|
||||
<keyword attribute="Control Structures" context="#stay" String="control structures" />
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<keyword attribute="Function" context="#stay" String="functions" />
|
||||
<IncludeRules context="find-aspsource" />
|
||||
<RegExpr attribute="HTML Tag" context="#pop" String="<\s*\/\s*script\s*>" insensitive="true" />
|
||||
|
||||
<DetectChar attribute="String" context="doublequotestring" char=""" />
|
||||
<DetectChar attribute="String" context="singlequotestring" char="'" />
|
||||
<HlCOct attribute="Octal" context="#stay" />
|
||||
<HlCHex attribute="Hex" context="#stay" />
|
||||
<Float attribute="Float" context="#stay" />
|
||||
<Int attribute="Decimal" context="#stay" />
|
||||
<DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" />
|
||||
<DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" />
|
||||
<AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
|
||||
</context>
|
||||
<context name="scripts_onelinecomment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="HTML Tag" context="#pop#pop" String="<\s*\/\s*script\s*>" insensitive="true" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context name="twolinecomment" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="ScriptComment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="ASP Text" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Control Structures" defStyleNum="dsControlFlow" spellChecking="false" />
|
||||
<itemData name="Escape Code" defStyleNum="dsSpecialChar" spellChecking="false" />
|
||||
<itemData name="Other" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="ASP Source" defStyleNum="dsDataType" bold="1" spellChecking="false" />
|
||||
|
||||
<itemData name="HTML Tag" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="HTML Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Identifier" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Types" defStyleNum="dsString" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="'" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" weakDeliminator=""/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
@@ -0,0 +1,248 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!-- Regular expression constants: -->
|
||||
<!ENTITY LETTER "A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\xff"> <!-- Latin-1 letters. -->
|
||||
<!ENTITY IDENT "[&LETTER;_][&LETTER;0-9_']*"> <!-- ATS identifiers. -->
|
||||
<!ENTITY ESC "(\\[ntbr'"\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- ATS character code escapes. -->
|
||||
<!ENTITY DEC "[0-9][0-9_]*"> <!-- Decimal digits with underscores. -->
|
||||
]>
|
||||
<language name="ATS" version="3" kateversion="5.0" section="Sources" extensions="*.dats;*.sats;*.hats" mimetype="" author="Kiwamu Okabe (kiwamu@debian.or.jp)" license="LGPL">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>abstype</item>
|
||||
<item>abst0ype</item>
|
||||
<item>absprop</item>
|
||||
<item>absview</item>
|
||||
<item>absvtype</item>
|
||||
<item>absviewtype</item>
|
||||
<item>absvt0ype</item>
|
||||
<item>absviewt0ype</item>
|
||||
<item>and</item>
|
||||
<item>as</item>
|
||||
<item>assume</item>
|
||||
<item>begin</item>
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>continue</item>
|
||||
<item>classdec</item>
|
||||
<item>datasort</item>
|
||||
<item>datatype</item>
|
||||
<item>dataprop</item>
|
||||
<item>dataview</item>
|
||||
<item>datavtype</item>
|
||||
<item>dataviewtype</item>
|
||||
<item>do</item>
|
||||
<item>dynload</item>
|
||||
<item>else</item>
|
||||
<item>end</item>
|
||||
<item>exception</item>
|
||||
<item>extern</item>
|
||||
<item>extype</item>
|
||||
<item>extval</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>infix</item>
|
||||
<item>infixl</item>
|
||||
<item>infixr</item>
|
||||
<item>prefix</item>
|
||||
<item>postfix</item>
|
||||
<item>let</item>
|
||||
<item>local</item>
|
||||
<item>macdef</item>
|
||||
<item>macrodef</item>
|
||||
<item>nonfix</item>
|
||||
<item>overload</item>
|
||||
<item>of</item>
|
||||
<item>op</item>
|
||||
<item>rec</item>
|
||||
<item>scase</item>
|
||||
<item>sif</item>
|
||||
<item>sortdef</item>
|
||||
<item>sta</item>
|
||||
<item>stacst</item>
|
||||
<item>stadef</item>
|
||||
<item>stavar</item>
|
||||
<item>staload</item>
|
||||
<item>symelim</item>
|
||||
<item>symintr</item>
|
||||
<item>then</item>
|
||||
<item>try</item>
|
||||
<item>tkindef</item>
|
||||
<item>type</item>
|
||||
<item>typedef</item>
|
||||
<item>propdef</item>
|
||||
<item>viewdef</item>
|
||||
<item>vtypedef</item>
|
||||
<item>viewtypedef</item>
|
||||
<item>val</item>
|
||||
<item>prval</item>
|
||||
<item>var</item>
|
||||
<item>prvar</item>
|
||||
<item>when</item>
|
||||
<item>where</item>
|
||||
<item>for</item>
|
||||
<item>while</item>
|
||||
<item>with</item>
|
||||
<item>withtype</item>
|
||||
<item>withprop</item>
|
||||
<item>withview</item>
|
||||
<item>withvtype</item>
|
||||
<item>withviewtype</item>
|
||||
</list>
|
||||
<list name="special keywords">
|
||||
<item>$arrpsz</item>
|
||||
<item>$arrptrsize</item>
|
||||
<item>$delay</item>
|
||||
<item>$ldelay</item>
|
||||
<item>$effmask</item>
|
||||
<item>$effmask_ntm</item>
|
||||
<item>$effmask_exn</item>
|
||||
<item>$effmask_ref</item>
|
||||
<item>$effmask_wrt</item>
|
||||
<item>$effmask_all</item>
|
||||
<item>$extern</item>
|
||||
<item>$extkind</item>
|
||||
<item>$extype</item>
|
||||
<item>$extype_struct</item>
|
||||
<item>$extval</item>
|
||||
<item>$lst</item>
|
||||
<item>$lst_t</item>
|
||||
<item>$lst_vt</item>
|
||||
<item>$list</item>
|
||||
<item>$list_t</item>
|
||||
<item>$list_vt</item>
|
||||
<item>$rec</item>
|
||||
<item>$rec_t</item>
|
||||
<item>$rec_vt</item>
|
||||
<item>$record</item>
|
||||
<item>$record_t</item>
|
||||
<item>$record_vt</item>
|
||||
<item>$tup</item>
|
||||
<item>$tup_t</item>
|
||||
<item>$tup_vt</item>
|
||||
<item>$tuple</item>
|
||||
<item>$tuple_t</item>
|
||||
<item>$tuple_vt</item>
|
||||
<item>$raise</item>
|
||||
<item>$showtype</item>
|
||||
<item>$myfilename</item>
|
||||
<item>$mylocation</item>
|
||||
<item>$myfunction</item>
|
||||
<item>#assert</item>
|
||||
<item>#define</item>
|
||||
<item>#elif</item>
|
||||
<item>#elifdef</item>
|
||||
<item>#elifndef</item>
|
||||
<item>#else</item>
|
||||
<item>#endif</item>
|
||||
<item>#error</item>
|
||||
<item>#if</item>
|
||||
<item>#ifdef</item>
|
||||
<item>#ifndef</item>
|
||||
<item>#include</item>
|
||||
<item>#print</item>
|
||||
<item>#then</item>
|
||||
<item>#undef</item>
|
||||
</list>
|
||||
<list name="function keywords">
|
||||
<item>fn</item>
|
||||
<item>fnx</item>
|
||||
<item>fun</item>
|
||||
<item>prfn</item>
|
||||
<item>prfun</item>
|
||||
<item>praxi</item>
|
||||
<item>castfn</item>
|
||||
<item>implmnt</item>
|
||||
<item>implement</item>
|
||||
<item>primplmnt</item>
|
||||
<item>primplement</item>
|
||||
<item>lam</item>
|
||||
<item>llam</item>
|
||||
<item>fix</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<StringDetect attribute="Comment" context="Rest-of-file Comment" String="////" beginRegion="comment" />
|
||||
<Detect2Chars attribute="Comment" context="Multiline Comment" char="(" char1="*" beginRegion="comment" />
|
||||
<Detect2Chars attribute="Comment" context="Multiline C-style Comment" char="/" char1="*" beginRegion="Comment"/>
|
||||
<Detect2Chars attribute="Comment" context="Singleline C++ style Comment" char="/" char1="/"/>
|
||||
|
||||
<Detect2Chars attribute="Termination Metrics" context="Termination Metrics Context" char="." char1="<" />
|
||||
|
||||
<RegExpr attribute="Constructor" context="#stay" String="`\s*&IDENT;"/>
|
||||
|
||||
<!-- Identifiers and keywords. -->
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<keyword attribute="Function Keyword" context="Function Keyword Context" String="function keywords" />
|
||||
<keyword attribute="Special Keyword" context="#stay" String="special keywords" />
|
||||
<RegExpr attribute="Identifier" context="#stay" String="&IDENT;" />
|
||||
|
||||
<!-- Numeric constants. -->
|
||||
<!-- Note that they may contain underscores. -->
|
||||
<RegExpr attribute="Hexadecimal" context="#stay" String="~?0[xX][0-9A-Fa-f_]+" />
|
||||
<RegExpr attribute="Float" context="#stay" String="~?&DEC;((\.(&DEC;)?([eE][-+]?&DEC;)?)|([eE][-+]?&DEC;))" />
|
||||
<RegExpr attribute="Decimal" context="#stay" String="~?&DEC;" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Rest-of-file Comment"/>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Multiline Comment">
|
||||
<!-- Support for nested comments -->
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1=")" endRegion="comment" />
|
||||
<Detect2Chars attribute="Comment" context="Multiline Comment" char="(" char1="*" beginRegion="comment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Multiline C-style Comment">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Singleline C++ style Comment">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context attribute="Termination Metrics" lineEndContext="#stay" name="Termination Metrics Context">
|
||||
<Detect2Chars attribute="Termination Metrics" context="#pop" char=">" char1="." />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Function Keyword Context">
|
||||
<DetectChar attribute="Normal Text" context="#pop" char="=" />
|
||||
<DetectChar attribute="Universal" context="Universal Context" char="{" />
|
||||
<DetectChar attribute="Existential" context="Existential Context" char="[" />
|
||||
<IncludeRules context="Normal"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Universal" lineEndContext="#stay" name="Universal Context">
|
||||
<DetectChar attribute="Universal" context="#pop" char="}" />
|
||||
</context>
|
||||
|
||||
<context attribute="Existential" lineEndContext="#stay" name="Existential Context">
|
||||
<DetectChar attribute="Existential" context="#pop" char="]" />
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Identifier" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Function Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Special Keyword" defStyleNum="dsDataType"/>
|
||||
<itemData name="Termination Metrics" defStyleNum="dsDataType"/>
|
||||
<itemData name="Universal" defStyleNum="dsDataType"/>
|
||||
<itemData name="Existential" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Hexadecimal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Constructor" defStyleNum="dsDataType"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<keywords casesensitive="1" />
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" />
|
||||
<comment name="multiLine" start="(*" end="*)" region="comment" />
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
@@ -0,0 +1,289 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="AWK" version="6" kateversion="5.0" section="Scripts"
|
||||
extensions="*.awk" mimetype="text/x-awk" indenter="cstyle"
|
||||
license="LGPL">
|
||||
<!-- patched by igli#kate@irc:chat.freenode.net -->
|
||||
<highlighting>
|
||||
<list name="controlflow">
|
||||
<item>if</item>
|
||||
<item>else</item>
|
||||
<item>while</item>
|
||||
<item>do</item>
|
||||
<item>for</item>
|
||||
<item>break</item>
|
||||
<item>continue</item>
|
||||
<item>return</item>
|
||||
<item>switch</item>
|
||||
<item>case</item>
|
||||
<item>default</item>
|
||||
<item>exit</item>
|
||||
</list>
|
||||
<list name="keywords">
|
||||
<item>in</item>
|
||||
<item>delete</item>
|
||||
<item>print</item>
|
||||
<item>printf</item>
|
||||
<item>getline</item>
|
||||
<item>function</item>
|
||||
<item>next</item>
|
||||
<item>nextfile</item>
|
||||
<item>@include</item>
|
||||
<item>@load</item>
|
||||
</list>
|
||||
<list name="builtins">
|
||||
<item>ARGC</item>
|
||||
<item>ARGIND</item>
|
||||
<item>ARGV</item>
|
||||
<item>BINMODE</item>
|
||||
<item>CONVFMT</item>
|
||||
<item>ENVIRON</item>
|
||||
<item>ERRNO</item>
|
||||
<item>FIELDWIDTHS</item>
|
||||
<item>FILENAME</item>
|
||||
<item>FNR</item>
|
||||
<item>FPAT</item>
|
||||
<item>FS</item>
|
||||
<item>FUNCTAB</item>
|
||||
<item>IGNORECASE</item>
|
||||
<item>LINT</item>
|
||||
<item>NF</item>
|
||||
<item>NR</item>
|
||||
<item>OFMT</item>
|
||||
<item>OFS</item>
|
||||
<item>ORS</item>
|
||||
<item>PREC</item>
|
||||
<item>PROCINFO</item>
|
||||
<item>ROUNDMODE</item>
|
||||
<item>RS</item>
|
||||
<item>RT</item>
|
||||
<item>RSTART</item>
|
||||
<item>RLENGTH</item>
|
||||
<item>SUBSEP</item>
|
||||
<item>SYMTAB</item>
|
||||
<item>TEXTDOMAIN</item>
|
||||
</list>
|
||||
<list name="functions">
|
||||
<!-- I/O -->
|
||||
<item>close</item>
|
||||
<item>fflush</item>
|
||||
<item>system</item>
|
||||
<!-- Arithmetic -->
|
||||
<item>atan2</item>
|
||||
<item>cos</item>
|
||||
<item>exp</item>
|
||||
<item>int</item>
|
||||
<item>log</item>
|
||||
<item>rand</item>
|
||||
<item>sin</item>
|
||||
<item>sqrt</item>
|
||||
<item>srand</item>
|
||||
<!-- String -->
|
||||
<item>asort</item>
|
||||
<item>asorti</item>
|
||||
<item>gensub</item>
|
||||
<item>gsub</item>
|
||||
<item>index</item>
|
||||
<item>length</item>
|
||||
<item>match</item>
|
||||
<item>patsplit</item>
|
||||
<item>split</item>
|
||||
<item>sprintf</item>
|
||||
<item>strtonum</item>
|
||||
<item>sub</item>
|
||||
<item>substr</item>
|
||||
<item>tolower</item>
|
||||
<item>toupper</item>
|
||||
<!-- Time -->
|
||||
<item>mktime</item>
|
||||
<item>strftime</item>
|
||||
<item>systime</item>
|
||||
<!-- Bit Manipulationse -->
|
||||
<item>and</item>
|
||||
<item>compl</item>
|
||||
<item>lshift</item>
|
||||
<item>or</item>
|
||||
<item>rshift</item>
|
||||
<item>xor</item>
|
||||
<!-- Type -->
|
||||
<item>isarray</item>
|
||||
<item>typeof</item>
|
||||
<!-- Internationalization -->
|
||||
<item>bindtextdomain</item>
|
||||
<item>dcgettext</item>
|
||||
<item>dcngettext</item>
|
||||
</list>
|
||||
<list name="special">
|
||||
<item>BEGIN</item>
|
||||
<item>BEGINFILE</item>
|
||||
<item>END</item>
|
||||
<item>ENDFILE</item>
|
||||
</list>
|
||||
<list name="charclass">
|
||||
<item>alpha</item>
|
||||
<item>alnum</item>
|
||||
<item>blank</item>
|
||||
<item>cntrl</item>
|
||||
<item>digit</item>
|
||||
<item>graph</item>
|
||||
<item>lower</item>
|
||||
<item>print</item>
|
||||
<item>punct</item>
|
||||
<item>space</item>
|
||||
<item>upper</item>
|
||||
<item>xdigit</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<!-- START CONTEXTS -->
|
||||
<context name="Pattern" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<DetectChar char="{" attribute="Symbol" context="Block" beginRegion="block" />
|
||||
<DetectChar char="}" attribute="Error" context="#stay"/>
|
||||
<DetectChar char="/" attribute="Regex Op" firstNonSpace="true" context="Regex"/>
|
||||
<IncludeRules context="base" />
|
||||
<keyword String="special" attribute="Special" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context name="Block" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<DetectChar char="}" attribute="Symbol" context="#pop" endRegion="block" />
|
||||
<DetectChar char="{" attribute="Symbol" context="Block" beginRegion="block" />
|
||||
<IncludeRules context="base" />
|
||||
<keyword String="special" attribute="Error" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context name="base" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar char=")" attribute="Symbol" context="#stay"/>
|
||||
<DetectChar char="(" attribute="Symbol" context="Match"/>
|
||||
<AnyChar String="=~" attribute="Operator" context="Match"/>
|
||||
<DetectChar char="," attribute="Separator Symbol" context="ArgSep"/>
|
||||
<DetectChar char=""" attribute="String" context="String"/>
|
||||
<DetectChar char="#" attribute="Comment" context="Comment"/>
|
||||
<AnyChar String="@!%&*+-/:<>?^|" attribute="Operator" context="#stay"/>
|
||||
<keyword String="controlflow" attribute="ControlFlow" context="#stay"/>
|
||||
<keyword String="keywords" attribute="Keyword" context="#stay"/>
|
||||
<keyword String="builtins" attribute="Builtin" context="#stay"/>
|
||||
<keyword String="functions" attribute="Function" context="#stay"/>
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<RegExpr String="\$[A-Za-z0-9_]+" attribute="Field" context="#stay"/>
|
||||
<DetectChar char=";" attribute="Separator Symbol" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context name="ArgSep" attribute="Normal" lineEndContext="#stay"
|
||||
fallthrough="true" fallthroughContext="#pop">
|
||||
<IncludeRules context="Match" />
|
||||
</context>
|
||||
|
||||
<context name="String" attribute="String" lineEndContext="#stay">
|
||||
<DetectChar char=""" attribute="String" context="#pop"/>
|
||||
<DetectChar char="\" context="Escape" attribute="Escape"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
<context name="Escape" attribute="Error" lineEndContext="#pop">
|
||||
<RegExpr String="[\\abfnrtv]|x[0-9a-fA-F]{1,2}|[0-7]{1,3}" attribute="Escape" context="#pop"/>
|
||||
<RegExpr String="." attribute="Error" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Match" attribute="Normal" lineEndContext="#pop"
|
||||
fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces />
|
||||
<DetectChar char="/" attribute="Regex Op" context="#pop!Regex"/>
|
||||
</context>
|
||||
|
||||
<context name="Regex" attribute="Regex" lineEndContext="#pop">
|
||||
<IncludeRules context="regex"/>
|
||||
<DetectChar char="/" context="#pop" attribute="Regex Op"/>
|
||||
</context>
|
||||
|
||||
<context name="regex" attribute="Normal" lineEndContext="#stay">
|
||||
<Detect2Chars char="[" char1="^" context="RegexChar" attribute="Regex Op"/>
|
||||
<DetectChar char="[" context="RegexChar" attribute="Regex Op"/>
|
||||
<AnyChar String="^$.+?*()|" context="#stay" attribute="Regex Op"/>
|
||||
<DetectChar char="\" context="Regex Escape" attribute="Regex Op"/>
|
||||
</context>
|
||||
|
||||
<context name="Regex Escape" attribute="Normal" lineEndContext="#pop">
|
||||
<RegExpr String="[<>sSwW`'[\]{}^$.+?*()|/\\abfnrtv]|x[0-9a-fA-F]{1,2}|[0-7]{1,3}" attribute="Escape" context="#pop"/>
|
||||
<RegExpr String="." attribute="Regex" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="RegexChar" attribute="Regex" lineEndContext="#pop"
|
||||
fallthrough="true" fallthroughContext="InChar">
|
||||
<AnyChar String="-]" context="InChar" attribute="Regex"/>
|
||||
</context>
|
||||
|
||||
<context name="InChar" attribute="Regex" lineEndContext="#pop#pop">
|
||||
<Detect2Chars char="-" char1="]" context="InCharEnd" attribute="Regex" lookAhead="true"/>
|
||||
<DetectChar char="-" context="#stay" attribute="Regex Op"/>
|
||||
<DetectChar char="\" context="Regex Escape" attribute="Regex Op"/>
|
||||
<DetectChar char="[" context="CharClassSelect" attribute="Regex" lookAhead="true"/>
|
||||
<DetectChar char="]" context="#pop#pop" attribute="Regex Op"/>
|
||||
</context>
|
||||
|
||||
<context name="InCharEnd" attribute="Regex Op" lineEndContext="#stay">
|
||||
<DetectChar char="-" context="#stay" attribute="Regex"/>
|
||||
<DetectChar char="]" context="#pop#pop#pop" attribute="Regex Op"/>
|
||||
</context>
|
||||
|
||||
<context name="CharClassSelect" attribute="Custom" lineEndContext="#pop#pop#pop#pop">
|
||||
<Detect2Chars char="[" char1=":" context="#pop!CharClass" attribute="CharClass"/>
|
||||
<Detect2Chars char="[" char1="." context="#pop!CollatingSymbols" attribute="CharClass"/>
|
||||
<Detect2Chars char="[" char1="=" context="#pop!EquivalenceClass" attribute="CharClass"/>
|
||||
<DetectChar char="[" context="#pop" attribute="Regex"/>
|
||||
</context>
|
||||
|
||||
<context name="CharClass" attribute="Custom" lineEndContext="#pop#pop#pop#pop">
|
||||
<keyword String="charclass" attribute="CharClass" context="#stay"/>
|
||||
<Detect2Chars char=":" char1="]" attribute="CharClass" context="#pop"/>
|
||||
<DetectChar char="]" attribute="Error" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="CollatingSymbols" attribute="Custom" lineEndContext="#pop#pop#pop#pop">
|
||||
<Detect2Chars char="." char1="]" attribute="CharClass" context="#pop"/>
|
||||
<DetectChar char="]" attribute="Error" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="EquivalenceClass" attribute="Custom" lineEndContext="#pop#pop#pop#pop">
|
||||
<Detect2Chars char="=" char1="]" attribute="CharClass" context="#pop"/>
|
||||
<DetectChar char="]" attribute="Error" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- END OF CONTEXTS -->
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal"/>
|
||||
<itemData name="ControlFlow" defStyleNum="dsControlFlow" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Builtin" defStyleNum="dsBuiltIn" spellChecking="false"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Escape" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Field" defStyleNum="dsDataType"/>
|
||||
<itemData name="Error" defStyleNum="dsError"/>
|
||||
<itemData name="Special" defStyleNum="dsControlFlow" bold="0"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Separator Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Regex" defStyleNum="dsSpecialString" spellChecking="false"/>
|
||||
<itemData name="Regex Op" defStyleNum="dsOthers"/>
|
||||
<itemData name="CharClass" defStyleNum="dsExtension" spellChecking="false"/>
|
||||
<itemData name="Custom" defStyleNum="dsOthers" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1" weakDeliminator="@"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY stringVariable "[a-zA-Z0-9\-]+">
|
||||
<!ENTITY fieldFormat "[a-zA-Z0-9\-_\.]+">
|
||||
<!ENTITY latexCmd "\\([a-zA-Z@]+|[^ ])">
|
||||
<!ENTITY refKeyFormat "[a-zA-Z0-9_@\\-\\:]+"> <!--taken from kile 2.0.3-->
|
||||
]>
|
||||
<language name="BibTeX" version="5" kateversion="5.0" extensions="*.bib" section="Markup" mimetype="text/x-bib" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL">
|
||||
<highlighting>
|
||||
<list name="kw_entry">
|
||||
<item>@article</item>
|
||||
<item>@book</item>
|
||||
<item>@booklet</item>
|
||||
<item>@conference</item>
|
||||
<item>@collection</item>
|
||||
<item>@electronic</item>
|
||||
<item>@inbook</item>
|
||||
<item>@incollection</item>
|
||||
<item>@inproceedings</item>
|
||||
<item>@manual</item>
|
||||
<item>@mastersthesis</item>
|
||||
<item>@misc</item>
|
||||
<item>@online</item>
|
||||
<item>@patent</item>
|
||||
<item>@periodical</item>
|
||||
<item>@proceedings</item>
|
||||
<item>@report</item>
|
||||
<item>@phdthesis</item>
|
||||
<item>@set</item>
|
||||
<item>@thesis</item>
|
||||
<item>@techreport</item>
|
||||
<item>@unpublished</item>
|
||||
<item>@www</item>
|
||||
<item>@person</item> <!--all three from the directory package-->
|
||||
<item>@company</item>
|
||||
<item>@place</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Comment" lineEndContext="#stay">
|
||||
<keyword String="kw_entry" attribute="Entry" context="Entry"/>
|
||||
<StringDetect String="@string" attribute="Command" insensitive="true" context="StringCommand"/>
|
||||
<StringDetect String="@preamble" attribute="Command" insensitive="true" context="PreambleCommand"/>
|
||||
<StringDetect String="@comment" attribute="Comment" insensitive="true" context="#stay"/> <!--nothing special needed here-->
|
||||
</context>
|
||||
|
||||
<context name="PreambleCommand" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#stay" >
|
||||
<DetectChar char="{" context="CurlyBracket" />
|
||||
</context>
|
||||
|
||||
<context name="StringCommand" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#stay" >
|
||||
<DetectChar char="{" context="CurlyBracket" />
|
||||
<RegExpr String="&stringVariable;" attribute="String" context="CurlyBracket"/>
|
||||
</context>
|
||||
|
||||
<context name="Entry" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar char="{" context="#stay" beginRegion="block" />
|
||||
<RegExpr String="&refKeyFormat;" attribute="Ref Key" context="#stay"/>
|
||||
<DetectChar char="," context="Field"/>
|
||||
<DetectChar char="}" attribute="Normal Text" context="#pop" endRegion="block" />
|
||||
</context>
|
||||
|
||||
<context name="Field" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr String="&fieldFormat;" attribute="Field" firstNonSpace="true"/>
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="=" context="#stay"/>
|
||||
<DetectChar char="{" context="CurlyBracket"/>
|
||||
<DetectChar char="}" context="#pop" lookAhead="true"/>
|
||||
<DetectChar char=""" attribute="Normal Text" context="QuotedText"/>
|
||||
<AnyChar String=",#" context="#stay"/> <!-- # is the bibtex string concatenate character -->
|
||||
<RegExpr String="[0-9]+" context="#stay"/>
|
||||
<RegExpr String="&stringVariable;" attribute="String" /> <!-- assume this is a variable created with @String -->
|
||||
<RegExpr String="." attribute="Error" context="#stay"/> <!--this rule catches all errors-->
|
||||
</context>
|
||||
|
||||
<context name="CurlyBracket" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar char="{" context="CurlyBracket"/>
|
||||
<RegExpr String="&latexCmd;" attribute="LatexCommand" context="#stay"/>
|
||||
<LineContinue char="}" context="#pop#pop"/>
|
||||
<DetectChar char="}" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="QuotedText" attribute="String" lineEndContext="#stay">
|
||||
<DetectChar char=""" attribute="Normal Text" context="#pop"/>
|
||||
<RegExpr String="&latexCmd;" attribute="LatexCommand" context="#stay"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Entry" defStyleNum="dsVariable" spellChecking="false"/>
|
||||
<itemData name="Command" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Field" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Ref Key" defStyleNum="dsOthers" spellChecking="false"/>
|
||||
<itemData name="LatexCommand" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment" spellChecking="false"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="true"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="0" weakDeliminator="\" wordWrapDeliminator=",{}[]"/>
|
||||
</general>
|
||||
</language>
|
||||
@@ -0,0 +1,232 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#%${}@-]*">
|
||||
<!ENTITY parens "\(\s*\)">
|
||||
<!ENTITY eos "(?=$|\s)"> <!-- eol or space following -->
|
||||
]>
|
||||
<!--
|
||||
====================================================================
|
||||
Bitbake syntax highlighting file for the Kate and QtCreator
|
||||
====================================================================
|
||||
|
||||
Author: Ivan Koveshnikov
|
||||
Changes by Mark Nauwelaerts
|
||||
-->
|
||||
|
||||
<language name="Bitbake" section="Sources"
|
||||
version="12" kateversion="5.79"
|
||||
extensions="*.bb;*.bbappend;*.bbclass;*.inc"
|
||||
license="GPL" author="Ivan Koveshnikov">
|
||||
|
||||
<highlighting>
|
||||
|
||||
<list name="keywords">
|
||||
<item>after</item>
|
||||
<item>before</item>
|
||||
<item>python</item>
|
||||
<item>branch</item>
|
||||
<item>bareclone</item>
|
||||
<item>protocol</item>
|
||||
<item>name</item>
|
||||
<item>if</item>
|
||||
<item>fi</item>
|
||||
<item>then</item>
|
||||
<item>rm</item>
|
||||
<item>ln</item>
|
||||
<item>cp</item>
|
||||
<item>for</item>
|
||||
<item>done</item>
|
||||
<item>cat</item>
|
||||
</list>
|
||||
|
||||
<list name="oe_functions">
|
||||
<item>do_build</item>
|
||||
<item>do_compile</item>
|
||||
<item>do_compile_append</item>
|
||||
<item>do_compile_prepend</item>
|
||||
<item>do_compile_ptest_base</item>
|
||||
<item>do_configure</item>
|
||||
<item>do_configure_append</item>
|
||||
<item>do_configure_prepend</item>
|
||||
<item>do_configure_ptest_base</item>
|
||||
<item>do_deploy</item>
|
||||
<item>do_fetch</item>
|
||||
<item>do_install</item>
|
||||
<item>do_install_append</item>
|
||||
<item>do_install_prepend</item>
|
||||
<item>do_install_ptest_base</item>
|
||||
<item>do_package</item>
|
||||
<item>do_package_qa</item>
|
||||
<item>do_package_write_deb</item>
|
||||
<item>do_package_write_ipk</item>
|
||||
<item>do_package_write_rpm</item>
|
||||
<item>do_package_write_tar</item>
|
||||
<item>do_packagedata</item>
|
||||
<item>do_patch</item>
|
||||
<item>do_populate_lic</item>
|
||||
<item>do_populate_sdk</item>
|
||||
<item>do_populate_sysroot</item>
|
||||
<item>do_rm_work</item>
|
||||
<item>do_rm_work_all</item>
|
||||
<item>do_unpack</item>
|
||||
<item>do_checkuri</item>
|
||||
<item>do_checkuriall</item>
|
||||
<item>do_clean</item>
|
||||
<item>do_cleanall</item>
|
||||
<item>do_cleansstate</item>
|
||||
<item>do_devshell</item>
|
||||
<item>do_fetchall</item>
|
||||
<item>do_listtasks</item>
|
||||
<item>do_package_index</item>
|
||||
<item>do_bootimg</item>
|
||||
<item>do_bundle_initramfs</item>
|
||||
<item>do_rootfs</item>
|
||||
<item>do_testimage</item>
|
||||
<item>do_testimage_auto</item>
|
||||
<item>do_vmdkimg</item>
|
||||
<item>do_compile_kernelmodules</item>
|
||||
<item>do_diffconfig</item>
|
||||
<item>do_kernel_checkout</item>
|
||||
<item>do_kernel_configcheck</item>
|
||||
<item>do_kernel_configme</item>
|
||||
<item>do_kernel_link_vmlinux</item>
|
||||
<item>do_menuconfig</item>
|
||||
<item>do_savedefconfig</item>
|
||||
<item>do_sizecheck</item>
|
||||
<item>do_strip</item>
|
||||
<item>do_uboot_mkimage</item>
|
||||
<item>do_validate_branches</item>
|
||||
<item>do_generate_qt_config_file</item>
|
||||
<item>do_spdx</item>
|
||||
<item>oe_runmake</item>
|
||||
<item>export</item>
|
||||
<item>install</item>
|
||||
<item>kernel_configme</item>
|
||||
<item>validate_branches</item>
|
||||
|
||||
</list>
|
||||
|
||||
<list name="dependencies">
|
||||
<item>inherit</item>
|
||||
<item>include</item>
|
||||
<item>require</item>
|
||||
<item>addtask</item>
|
||||
<item>deltask</item>
|
||||
<item>addhandler</item>
|
||||
<item>EXPORT_FUNCTIONS</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context name="Normal Text" attribute="Normal Text" lineEndContext="#pop" >
|
||||
<DetectSpaces/>
|
||||
<DetectChar context="bbComment" char="#" />
|
||||
<!-- detect sub-context before marked as keyword -->
|
||||
<RegExpr context="pbfunction" String="^\s*python\s+&funcname;\s*&parens;" lookAhead="true" column="0" />
|
||||
<RegExpr context="pfunction" String="^def\s+&funcname;\s*\(.*\)\s*:&eos;" lookAhead="true" column="0" minimal="true" />
|
||||
<RegExpr context="function" String="^\s*&funcname;\s*&parens;" lookAhead="true" column="0" />
|
||||
<IncludeRules context="keywords" />
|
||||
<DetectChar attribute="String" context="bbString" char=""" />
|
||||
<RegExpr attribute="Variable" context="#stay" String="\$\{[A-Za-z0-9_-]+\}" />
|
||||
<RegExpr attribute="Keyword" context="#stay" String="(?:[A-Z]+)[0-9_]*" />
|
||||
</context>
|
||||
|
||||
<!-- used for include -->
|
||||
<context name="keywords" attribute="Normal Text" lineEndContext="#stay">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<keyword attribute="OEFunction" context="#stay" String="oe_functions" />
|
||||
<keyword attribute="Dependency" context="#stay" String="dependencies" />
|
||||
</context>
|
||||
|
||||
<!-- bitbake shell function -->
|
||||
<context name="function" attribute="Normal Text" lineEndContext="#stay">
|
||||
<IncludeRules context="keywords" />
|
||||
<RegExpr attribute="Function" context="#stay" String="&funcname;\s*&parens;" />
|
||||
<DetectChar char="{" context="bash" beginRegion="function" />
|
||||
</context>
|
||||
|
||||
<context name="bash" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Command##Bash">
|
||||
<DetectChar attribute="Keyword" char="}" context="#pop#pop" endRegion="function" />
|
||||
<IncludeRules context="##Bash" />
|
||||
</context>
|
||||
|
||||
<!-- bitbake python function -->
|
||||
<context name="pbfunction" attribute="Normal Text" lineEndContext="#stay">
|
||||
<IncludeRules context="keywords" />
|
||||
<RegExpr attribute="Function" context="#stay" String="&funcname;\s*&parens;" />
|
||||
<DetectChar char="{" context="python" beginRegion="function" />
|
||||
</context>
|
||||
|
||||
<!-- (internal) python function -->
|
||||
<context name="pfunction" attribute="Normal Text" lineEndContext="python">
|
||||
<WordDetect attribute="Keyword" String="def" />
|
||||
<Detect2Chars char=")" char1=":" context="python" beginRegion="function" />
|
||||
</context>
|
||||
|
||||
<context name="python" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Keyword" char="}" context="#pop#pop" endRegion="function" />
|
||||
<RegExpr String="^\w" column="0" context="#pop#pop" endRegion="function" lookAhead="true" />
|
||||
<IncludeRules context="##Python" />
|
||||
</context>
|
||||
|
||||
<context name="bbString" attribute="String" lineEndContext="bbError" >
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
<LineContinue attribute="Escape" context="#stay" />
|
||||
<AnyChar attribute="Normal Text" context="#stay" String="=|;," />
|
||||
<RegExpr attribute="BBFunction" context="#stay" String="\$\{@[a-zA-Z0-9._\-\(\), "/]+\}" />
|
||||
<RegExpr attribute="Variable" context="#stay" String="\$\{[A-Za-z0-9_-]+\}" />
|
||||
</context>
|
||||
|
||||
<context name="bbComment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="bbError" attribute="Error" lineEndContext="#stay" >
|
||||
<DetectChar attribute="Error" context="#pop" char=""" />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<!--
|
||||
dsNormal, used for normal text.
|
||||
dsKeyword, used for keywords.
|
||||
dsDataType, used for data types.
|
||||
dsDecVal, used for decimal values.
|
||||
dsBaseN, used for values with a base other than 10.
|
||||
dsFloat, used for float values.
|
||||
dsChar, used for a character.
|
||||
dsString, used for strings.
|
||||
dsComment, used for comments.
|
||||
dsOthers, used for ‘other’ things.
|
||||
dsAlert, used for warning messages.
|
||||
dsFunction, used for function calls.
|
||||
dsRegionMarker, used for region markers.
|
||||
dsError, used for error highlighting and wrong syntax.
|
||||
-->
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="true" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Variable" defStyleNum="dsOthers" spellChecking="false" color="darkred" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
|
||||
<itemData name="Dependency" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="BBFunction" defStyleNum="dsOthers" spellChecking="false" color="darkblue" />
|
||||
<itemData name="OEFunction" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />
|
||||
<itemData name="Escape" defStyleNum="dsOthers" spellChecking="false" color="grey" />
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false" />
|
||||
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#"/>
|
||||
</comments>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="B-Method" version="3" kateversion="5.0" section="Scientific" extensions="*.mch;*.imp;*.ref" author="Ivo Anjo (knuckles@gmail.com)" license="LGPL">
|
||||
|
||||
<highlighting>
|
||||
<list name="sections">
|
||||
<item>MACHINE</item>
|
||||
<item>SETS</item>
|
||||
<item>CONSTANTS</item>
|
||||
<item>PROPERTIES</item>
|
||||
<item>PROMOTES</item>
|
||||
<item>INCLUDES</item>
|
||||
<item>USES</item>
|
||||
<item>SEES</item>
|
||||
<item>VARIABLES</item>
|
||||
<item>INVARIANT</item>
|
||||
<item>INITIALISATION</item>
|
||||
<item>REFINEMENT</item>
|
||||
<item>REFINES</item>
|
||||
<item>CONSTRAINTS</item>
|
||||
<item>IMPLEMENTATION</item>
|
||||
<item>IMPORTS</item>
|
||||
</list>
|
||||
<list name="sectionsBlockStart">
|
||||
<item>OPERATIONS</item>
|
||||
</list>
|
||||
<list name="sectionsBlockEnd">
|
||||
<item>END</item>
|
||||
</list>
|
||||
<list name="operationSections">
|
||||
<item>THEN</item>
|
||||
<item>WHEN</item>
|
||||
<item>ELSE</item>
|
||||
<item>OR</item>
|
||||
<item>WHERE</item>
|
||||
<item>INVARIANT</item>
|
||||
<item>DO</item>
|
||||
<item>VARIANT</item>
|
||||
<item>IN</item>
|
||||
<item>ELSIF</item>
|
||||
</list>
|
||||
<list name="operationSectionsBlockStart">
|
||||
<item>PRE</item>
|
||||
<item>IF</item>
|
||||
<item>ANY</item>
|
||||
<item>LET</item>
|
||||
<item>CHOICE</item>
|
||||
<item>CASE</item>
|
||||
<item>SELECT</item>
|
||||
<item>VAR</item>
|
||||
<item>WHILE</item>
|
||||
<item>BEGIN</item>
|
||||
</list>
|
||||
<list name="operationSectionsBlockEnd">
|
||||
<item>END</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>NAT</item>
|
||||
<item>NAT1</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
|
||||
<keyword attribute="SectionKeyword" context="#stay" String="sections" column="0"/>
|
||||
<keyword attribute="SectionKeyword" context="#stay" String="sectionsBlockStart" column="0" beginRegion="sectionsBlock"/>
|
||||
<keyword attribute="SectionKeyword" context="#stay" String="sectionsBlockEnd" column="0" endRegion="sectionsBlock"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="Comment"/>
|
||||
<keyword attribute="OperationKeyword" context="#stay" String="operationSections"/>
|
||||
<keyword attribute="OperationKeyword" context="#stay" String="operationSectionsBlockStart" beginRegion="CodeBlock"/>
|
||||
<keyword attribute="OperationKeyword" context="#stay" String="operationSectionsBlockEnd" endRegion="CodeBlock"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Comment">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0"/>
|
||||
<itemData name="SectionKeyword" defStyleNum="dsBuiltIn" spellChecking="0"/>
|
||||
<itemData name="OperationKeyword" defStyleNum="dsControlFlow" spellChecking="0"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="0"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="0"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1"/>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,305 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!-- Based on Python syntax highlighting v1.99 by Primoz Anzur, Paul Giannaros, Michael Bueker, Per Wigren -->
|
||||
<!-- Also based on boo.lang from gtksourceview -->
|
||||
<language name="Boo" version="10" kateversion="5.0" section="Sources" extensions="*.boo" mimetype="text/x-boo" casesensitive="1" author="Marc Dassonneville" license="LGPL">
|
||||
<highlighting>
|
||||
<list name="namespace">
|
||||
<item>import</item>
|
||||
<item>from</item>
|
||||
<item>as</item>
|
||||
<item>namespace</item>
|
||||
</list>
|
||||
|
||||
<list name="operators">
|
||||
<item>and</item>
|
||||
<item>assert</item>
|
||||
<item>in</item>
|
||||
<item>is</item>
|
||||
<item>not</item>
|
||||
<item>or</item>
|
||||
</list>
|
||||
|
||||
<list name="primitive">
|
||||
<item>bool</item>
|
||||
<item>byte</item>
|
||||
<item>sbyte</item>
|
||||
<item>double</item>
|
||||
<item>decimal</item>
|
||||
<item>single</item>
|
||||
<item>short</item>
|
||||
<item>ushort</item>
|
||||
<item>int</item>
|
||||
<item>char</item>
|
||||
<item>uint</item>
|
||||
<item>long</item>
|
||||
<item>ulong</item>
|
||||
<item>object</item>
|
||||
<item>duck</item>
|
||||
<item>string</item>
|
||||
<item>regex</item>
|
||||
<item>date</item>
|
||||
<item>timespan</item>
|
||||
</list>
|
||||
|
||||
<list name="definition">
|
||||
<item>abstract</item>
|
||||
<item>virtual</item>
|
||||
<item>override</item>
|
||||
<item>static</item>
|
||||
<item>final</item>
|
||||
<item>transient</item>
|
||||
<item>macro</item>
|
||||
|
||||
<item>protected</item>
|
||||
<item>private</item>
|
||||
<item>public</item>
|
||||
<item>internal</item>
|
||||
<item>partial</item>
|
||||
|
||||
<item>class</item>
|
||||
<item>struct</item>
|
||||
<item>interface</item>
|
||||
<item>enum</item>
|
||||
<item>callable</item>
|
||||
<item>of</item>
|
||||
|
||||
<item>def</item>
|
||||
<item>constructor</item>
|
||||
<item>destructor</item>
|
||||
|
||||
<item>do</item>
|
||||
<item>get</item>
|
||||
<item>set</item>
|
||||
<item>event</item>
|
||||
|
||||
<item>return</item>
|
||||
<item>yield</item>
|
||||
</list>
|
||||
|
||||
<list name="boolean">
|
||||
<item>true</item>
|
||||
<item>false</item>
|
||||
</list>
|
||||
|
||||
<list name="literals">
|
||||
<item>null</item>
|
||||
<item>self</item>
|
||||
<item>super</item>
|
||||
</list>
|
||||
|
||||
<list name="keywords">
|
||||
<item>and</item>
|
||||
<item>break</item>
|
||||
<item>cast</item>
|
||||
<item>continue</item>
|
||||
<item>elif</item>
|
||||
<item>else</item>
|
||||
<item>except</item>
|
||||
<item>ensure</item>
|
||||
<item>for</item>
|
||||
<item>given</item>
|
||||
<item>goto</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>is</item>
|
||||
<item>isa</item>
|
||||
<item>not</item>
|
||||
<item>or</item>
|
||||
<item>otherwise</item>
|
||||
<item>pass</item>
|
||||
<item>raise</item>
|
||||
<item>try</item>
|
||||
<item>unless</item>
|
||||
<item>when</item>
|
||||
<item>while</item>
|
||||
<item>ref</item>
|
||||
</list>
|
||||
|
||||
<list name="builtins">
|
||||
<item>assert</item>
|
||||
<item>__eval__</item>
|
||||
<item>__switch__</item>
|
||||
<item>enumerate</item>
|
||||
<item>filter</item>
|
||||
<item>len</item>
|
||||
<item>typeof</item>
|
||||
<item>map</item>
|
||||
<item>max</item>
|
||||
<item>min</item>
|
||||
<item>property</item>
|
||||
<item>using</item>
|
||||
<item>getter</item>
|
||||
<item>required</item>
|
||||
<item>lock</item>
|
||||
<item>range</item>
|
||||
<item>zip</item>
|
||||
<item>checked</item>
|
||||
<item>unchecked</item>
|
||||
<item>rawArrayIndexing</item>
|
||||
<item>normalArrayIndexing</item>
|
||||
<item>print</item>
|
||||
<item>array</item>
|
||||
<item>matrix</item>
|
||||
<item>yieldAll</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<keyword attribute="Preprocessor" String="namespace" context="#stay"/>
|
||||
<keyword attribute="Definition Keyword" String="definition" context="#stay"/>
|
||||
<keyword attribute="Operator" String="operators" context="#stay"/>
|
||||
<keyword attribute="Flow Control Keyword" String="keywords" context="#stay"/>
|
||||
<keyword attribute="Builtin Function" String="builtins" context="#stay"/>
|
||||
<keyword attribute="Special Variable" String="literals" context="#stay"/>
|
||||
<keyword attribute="Special Variable" String="boolean" context="#stay"/>
|
||||
<keyword attribute="Data Type" String="primitive" context="#stay" />
|
||||
<RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]+" 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"/>
|
||||
<RegExpr attribute="Hex" String="0[Xx][0-9a-fA-F]+" context="#stay"/>
|
||||
<RegExpr attribute="Octal" String="0[1-9][0-9]*" context="#stay"/>
|
||||
|
||||
<StringDetect attribute="Raw String" String="r'''" context="Raw Tripple A-string" insensitive="1"/>
|
||||
<StringDetect attribute="Raw String" String="r"""" context="Raw Tripple Q-string" insensitive="1"/>
|
||||
|
||||
<Detect2Chars attribute="Raw String" char="r" char1="'" context="Raw A-string"/>
|
||||
<Detect2Chars attribute="Raw String" char="R" char1="'" context="Raw A-string"/>
|
||||
<Detect2Chars attribute="Raw String" char="r" char1=""" context="Raw Q-string"/>
|
||||
<Detect2Chars attribute="Raw String" char="R" char1=""" context="Raw Q-string"/>
|
||||
|
||||
<DetectChar attribute="Comment" char="#" context="Comment"/>
|
||||
<RegExpr attribute="Comment" String="^\s*u?'''" context="Tripple A-comment" beginRegion="Tripple A-region" column="0"/>
|
||||
<RegExpr attribute="Comment" String="^\s*u?"""" context="Tripple Q-comment" beginRegion="Tripple Q-region" column="0"/>
|
||||
<Detect2Chars attribute="Comment" char="/" char1="/" context="Comment SlashSlash"/>
|
||||
|
||||
<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="parenthesised" beginRegion="parenthesis"/>
|
||||
<DetectChar attribute="Operator" char=")" context="#pop" endRegion="parenthesis"/>
|
||||
|
||||
<Detect2Chars attribute="Operator" char="[" char1="|" context="Quasi-Quotation" beginRegion="qq"/>
|
||||
<Detect2Chars attribute="Operator" char="|" char1="]" context="#pop" endRegion="qq"/>
|
||||
|
||||
<AnyChar attribute="Operator" String="+*/%|=;!<>!^&~-" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context name="parenthesised" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
|
||||
<IncludeRules context="Normal" />
|
||||
</context>
|
||||
|
||||
<context name="Quasi-Quotation" attribute="Operator" lineEndContext="#stay" noIndentationBasedFolding="true">
|
||||
<IncludeRules context="Normal" />
|
||||
</context>
|
||||
|
||||
<context name="Tripple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
|
||||
<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Tripple A-region"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
<context name="Tripple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
|
||||
<HlCChar attribute="Comment" context="#stay"/>
|
||||
<StringDetect attribute="Comment" String=""""" context="#pop" endRegion="Tripple Q-region"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</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"/>
|
||||
<StringDetect 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"/>
|
||||
<StringDetect 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"/>
|
||||
<StringDetect 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"/>
|
||||
<StringDetect attribute="String" String=""""" context="#pop" endRegion="Tripple Q-region"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment SlashSlash" attribute="Comment" lineEndContext="#pop" >
|
||||
<LineContinue attribute="Comment" context="#stay"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</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"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<DetectChar attribute="Raw String" char=""" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Definition Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator" />
|
||||
<itemData name="String Substitution" defStyleNum="dsNormal"/>
|
||||
<itemData name="Flow Control Keyword" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="Builtin Function" defStyleNum="dsDataType"/>
|
||||
<itemData name="Special Variable" defStyleNum="dsOthers"/>
|
||||
<itemData name="Preprocessor" defStyleNum="dsChar"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<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="Complex" defStyleNum="dsOthers"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Raw String" defStyleNum="dsVerbatimString"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<folding indentationsensitive="1" />
|
||||
<emptyLines>
|
||||
<emptyLine regexpr="\s+"/>
|
||||
<emptyLine regexpr="\s*#.*$"/>
|
||||
</emptyLines>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" position="afterwhitespace"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,842 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language
|
||||
name="BrightScript"
|
||||
section="Scripts"
|
||||
extensions="*.brs"
|
||||
version="11"
|
||||
kateversion="5.0"
|
||||
author="Daniel Levin (dendy.ua@gmail.com)"
|
||||
license="MIT">
|
||||
|
||||
<highlighting>
|
||||
|
||||
|
||||
|
||||
|
||||
<list name="library"><item>library</item></list>
|
||||
|
||||
<list name="function"><item>function</item></list>
|
||||
<list name="endfunction"><item>endfunction</item></list>
|
||||
<list name="sub"><item>sub</item></list>
|
||||
<list name="endsub"><item>endsub</item></list>
|
||||
<list name="as"><item>as</item></list>
|
||||
|
||||
<list name="exit"><item>exit</item></list>
|
||||
|
||||
<list name="if"><item>if</item></list>
|
||||
<list name="endif"><item>endif</item></list>
|
||||
<list name="then"><item>then</item></list>
|
||||
<list name="else"><item>else</item></list>
|
||||
<list name="elseif"><item>elseif</item></list>
|
||||
|
||||
<list name="while"><item>while</item></list>
|
||||
<list name="endwhile"><item>endwhile</item></list>
|
||||
<list name="exitwhile"><item>exitwhile</item></list>
|
||||
|
||||
<list name="for"><item>for</item></list>
|
||||
<list name="endfor"><item>endfor</item></list>
|
||||
<list name="each"><item>each</item></list>
|
||||
<list name="in"><item>in</item></list>
|
||||
<list name="to"><item>to</item></list>
|
||||
<list name="step"><item>step</item></list>
|
||||
<list name="next"><item>next</item></list>
|
||||
|
||||
<list name="print"><item>print</item></list>
|
||||
<list name="return"><item>return</item></list>
|
||||
|
||||
<list name="dim"><item>dim</item></list>
|
||||
<list name="stop"><item>stop</item></list>
|
||||
<list name="goto"><item>goto</item></list>
|
||||
|
||||
<list name="try"><item>try</item></list>
|
||||
<list name="endtry"><item>endtry</item></list>
|
||||
<list name="catch"><item>catch</item></list>
|
||||
<list name="throw"><item>throw</item></list>
|
||||
|
||||
<list name="m"><item>m</item></list>
|
||||
<list name="top">
|
||||
<item>top</item>
|
||||
<item>global</item>
|
||||
</list>
|
||||
|
||||
<list name="end_of_scope">
|
||||
<item>then</item>
|
||||
<item>end</item>
|
||||
<item>exit</item>
|
||||
</list>
|
||||
|
||||
<list name="unary">
|
||||
<item>not</item>
|
||||
</list>
|
||||
|
||||
<list name="builtin_functions">
|
||||
<item>tab</item>
|
||||
<item>pos</item>
|
||||
<item>CreateObject</item>
|
||||
<item>Type</item>
|
||||
<item>GetGlobalAA</item>
|
||||
<item>Box</item>
|
||||
<item>Run</item>
|
||||
<item>Eval</item>
|
||||
<item>GetLastRunCompileError</item>
|
||||
<item>GetLastRunRuntimeError</item>
|
||||
<item>ObjFun</item>
|
||||
</list>
|
||||
|
||||
<list name="utility_functions">
|
||||
<item>Sleep</item>
|
||||
<item>Wait</item>
|
||||
<item>GetInterface</item>
|
||||
<item>FindMemberFunction</item>
|
||||
<item>UpTime</item>
|
||||
<item>RebootSystem</item>
|
||||
<item>ListDir</item>
|
||||
<item>ReadAsciiFile</item>
|
||||
<item>WriteAsciiFile</item>
|
||||
<item>CopyFile</item>
|
||||
<item>MoveFile</item>
|
||||
<item>MatchFiles</item>
|
||||
<item>DeleteFile</item>
|
||||
<item>DeleteDirectory</item>
|
||||
<item>CreateDirectory</item>
|
||||
<item>FormatDrive</item>
|
||||
<item>StrToI</item>
|
||||
<item>RunGarbageCollector</item>
|
||||
<item>ParseJson</item>
|
||||
<item>FormatJson</item>
|
||||
<item>Tr</item>
|
||||
</list>
|
||||
|
||||
<list name="string_functions">
|
||||
<item>UCase</item>
|
||||
<item>LCase</item>
|
||||
<item>Asc</item>
|
||||
<item>Chr</item>
|
||||
<item>Instr</item>
|
||||
<item>Left</item>
|
||||
<item>Len</item>
|
||||
<item>Mid</item>
|
||||
<item>Str</item>
|
||||
<item>StrI</item>
|
||||
<item>String</item>
|
||||
<item>StringI</item>
|
||||
<item>Val</item>
|
||||
<item>Substitute</item>
|
||||
</list>
|
||||
|
||||
<list name="math_functions">
|
||||
<item>Abs</item>
|
||||
<item>Atn</item>
|
||||
<item>Cdbl</item>
|
||||
<item>Cint</item>
|
||||
<item>Cos</item>
|
||||
<item>Csng</item>
|
||||
<item>Exp</item>
|
||||
<item>Fix</item>
|
||||
<item>Int</item>
|
||||
<item>Log</item>
|
||||
<item>Rnd</item>
|
||||
<item>Sgn</item>
|
||||
<item>Sin</item>
|
||||
<item>Sqr</item>
|
||||
<item>Tan</item>
|
||||
</list>
|
||||
|
||||
<list name="comments">
|
||||
<item>rem</item>
|
||||
</list>
|
||||
|
||||
<list name="types">
|
||||
<item>invalid</item>
|
||||
<item>void</item>
|
||||
<item>dynamic</item>
|
||||
<item>boolean</item>
|
||||
<item>integer</item>
|
||||
<item>longinteger</item>
|
||||
<item>float</item>
|
||||
<item>double</item>
|
||||
<item>string</item>
|
||||
<item>object</item>
|
||||
<item>function</item>
|
||||
<item>interface</item>
|
||||
</list>
|
||||
|
||||
<list name="constants">
|
||||
<item>true</item>
|
||||
<item>false</item>
|
||||
<item>invalid</item>
|
||||
<item>LINE_NUM</item>
|
||||
</list>
|
||||
|
||||
|
||||
|
||||
|
||||
<contexts>
|
||||
|
||||
<!-- Contexts starting with @ are for inclusion only. -->
|
||||
|
||||
<context name="global" attribute="g" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<keyword String="library" attribute="import" context="library"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
<IncludeRules context="@macro"/>
|
||||
<IncludeRules context="@function"/>
|
||||
<IncludeRules context="@sub"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Import statement, which might appear at the global context:
|
||||
library "mylibname.brs"
|
||||
-->
|
||||
<context name="library" attribute="import" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char=""" attribute="string" context="#pop!string"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Comments have higher priority over anything else. -->
|
||||
<context name="@comment" attribute="g" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="'" attribute="comment" context="comment"/>
|
||||
<keyword String="comments" attribute="comment" context="comment"/>
|
||||
</context>
|
||||
|
||||
<context name="comment" attribute="comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Macro statement starts with # and might appear anywhere in the code:
|
||||
#if foo
|
||||
...
|
||||
#else
|
||||
...
|
||||
#endif
|
||||
-->
|
||||
<context name="@macro" attribute="g" lineEndContext="#stay">
|
||||
<DetectChar char="#" attribute="macro" context="macro_line"/>
|
||||
</context>
|
||||
|
||||
<context name="macro_line" attribute="macro" lineEndContext="#pop">
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Colon starts a new line. -->
|
||||
<context name="line_break" attribute="g" lineEndContext="#stay">
|
||||
<IncludeRules context="@line_break"/>
|
||||
</context>
|
||||
|
||||
<context name="@line_break" attribute="g" lineEndContext="#stay">
|
||||
<DetectChar char=":" attribute="line_break" context="#pop"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Common rules for function and sub. -->
|
||||
<context name="@code_end" attribute="g" lineEndContext="#stay">
|
||||
<RegExpr String="end\s+(if|for|while)" insensitive="true" attribute="control"/>
|
||||
</context>
|
||||
|
||||
<context name="arg_as_type" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="var" context="#pop!arg_params"/>
|
||||
</context>
|
||||
|
||||
<context name="arg_params" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<keyword String="as" context="as_type" lookAhead="true"/>
|
||||
<DetectChar char="=" attribute="assign" context="rvalue"/>
|
||||
</context>
|
||||
|
||||
<context name="as_type" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="as" attribute="keyword" context="as_type_value"/>
|
||||
</context>
|
||||
|
||||
<context name="as_type_value" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="types" attribute="type" context="#pop#pop"/>
|
||||
<DetectIdentifier attribute="invalid" context="#pop#pop"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Inline lambda call for sub/function -->
|
||||
<context name="inline_call" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="(" attribute="scope" context="#pop!lvalue_call_args"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Regular function definition. -->
|
||||
<context name="@function" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="function" attribute="keyword" context="function" beginRegion="function"/>
|
||||
</context>
|
||||
|
||||
<context name="function" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="function_name">
|
||||
</context>
|
||||
|
||||
<context name="function_name" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!function_code">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="func" context="#pop!func_open_brace"/>
|
||||
<DetectChar char="(" context="#pop!func_open_brace" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="func_open_brace" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!function_code">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="(" attribute="scope" context="func_args"/>
|
||||
</context>
|
||||
|
||||
<context name="func_args" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop!function_code">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier context="arg_as_type" lookAhead="true"/>
|
||||
<DetectChar char=")" attribute="scope" context="#pop#pop!function_ret"/>
|
||||
<DetectChar char="," attribute="coma" context="arg_as_type"/>
|
||||
</context>
|
||||
|
||||
<context name="function_ret" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!function_code">
|
||||
<DetectChar char=" " context="#stay"/>
|
||||
<keyword String="as" context="as_type" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="function_code" attribute="g" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<RegExpr String="end\s+function" insensitive="true" context="#pop!function_solid_end" lookAhead="true"/>
|
||||
<keyword String="endfunction" context="#pop!function_solid_end" lookAhead="true"/>
|
||||
<IncludeRules context="@code"/>
|
||||
</context>
|
||||
|
||||
<context name="function_solid_end" attribute="g" lineEndContext="#stay">
|
||||
<StringDetect String="end" insensitive="true" attribute="keyword" context="#pop!function_end"/>
|
||||
</context>
|
||||
|
||||
<context name="function_end" attribute="keyword" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
|
||||
<DetectSpaces/>
|
||||
<StringDetect String="function" insensitive="true" attribute="keyword" context="#pop#pop!inline_call" endRegion="function"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- sub is a function with void return type. -->
|
||||
<context name="@sub" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="sub" attribute="keyword" context="sub" beginRegion="sub"/>
|
||||
</context>
|
||||
|
||||
<context name="sub" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="sub_name">
|
||||
</context>
|
||||
|
||||
<context name="sub_name" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!sub_code">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="func" context="#pop!sub_open_brace"/>
|
||||
<DetectChar char="(" context="#pop!sub_open_brace" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="sub_open_brace" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!sub_code">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="(" attribute="scope" context="sub_args"/>
|
||||
</context>
|
||||
|
||||
<context name="sub_args" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop!sub_code">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier context="arg_as_type" lookAhead="true"/>
|
||||
<DetectChar char=")" attribute="scope" context="#pop#pop!sub_ret"/>
|
||||
<DetectChar char="," attribute="coma" context="arg_as_type"/>
|
||||
</context>
|
||||
|
||||
<context name="sub_ret" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!sub_code">
|
||||
<DetectChar char=" " context="#stay"/>
|
||||
<keyword String="as" context="as_type" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="sub_code" attribute="g" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<RegExpr String="end\s+sub" insensitive="true" context="#pop!sub_solid_end" lookAhead="true"/>
|
||||
<keyword String="endsub" context="#pop!sub_solid_end" lookAhead="true"/>
|
||||
<IncludeRules context="@code"/>
|
||||
</context>
|
||||
|
||||
<context name="sub_solid_end" attribute="g" lineEndContext="#stay">
|
||||
<StringDetect String="end" insensitive="true" attribute="keyword" context="#pop!sub_end"/>
|
||||
</context>
|
||||
|
||||
<context name="sub_end" attribute="keyword" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
|
||||
<DetectSpaces/>
|
||||
<StringDetect String="sub" insensitive="true" attribute="keyword" context="#pop#pop!inline_call" endRegion="sub"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- @code represents execution body, including function and sub contents.
|
||||
-->
|
||||
<context name="@code" attribute="g" lineEndContext="#stay">
|
||||
<IncludeRules context="@macro"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
<IncludeRules context="@code_end"/>
|
||||
|
||||
<keyword String="print" attribute="print" context="print"/>
|
||||
<keyword String="goto" attribute="keyword" context="goto"/>
|
||||
<keyword String="return" attribute="control" context="rvalue"/>
|
||||
<keyword String="stop" attribute="keyword"/>
|
||||
|
||||
<keyword String="dim" attribute="keyword" context="dim"/>
|
||||
|
||||
<keyword String="if" attribute="control" context="rvalue"/>
|
||||
<keyword String="then" attribute="control"/>
|
||||
<keyword String="else" attribute="control"/>
|
||||
<keyword String="elseif" attribute="control"/>
|
||||
<keyword String="endif" attribute="control"/>
|
||||
|
||||
<keyword String="while" attribute="control" context="rvalue"/>
|
||||
<keyword String="endwhile" attribute="control"/>
|
||||
<keyword String="exitwhile" attribute="control"/>
|
||||
|
||||
<keyword String="for" attribute="control" context="for"/>
|
||||
<keyword String="endfor" attribute="control"/>
|
||||
<keyword String="next" attribute="control"/>
|
||||
|
||||
<keyword String="exit" attribute="control" context="exit"/>
|
||||
|
||||
<keyword String="try" context="try_test" lookAhead="true"/>
|
||||
<keyword String="throw" attribute="keyword" context="rvalue"/>
|
||||
|
||||
<DetectChar char=":" context="line_break" lookAhead="true"/>
|
||||
|
||||
<DetectIdentifier context="lvalue" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="try_test" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!lvalue">
|
||||
<RegExpr String="try\s*('|$)" context="#pop!try_begin" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="try_begin" attribute="g" lineEndContext="#pop">
|
||||
<DetectIdentifier attribute="keyword" context="#pop!try_body"/>
|
||||
</context>
|
||||
|
||||
<context name="try_body" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<StringDetect String="end" insensitive="true" attribute="keyword" context="#pop!try_end"/>
|
||||
<keyword String="endtry" attribute="keyword" context="#pop"/>
|
||||
<keyword String="catch" context="catch_test" lookAhead="true"/>
|
||||
<IncludeRules context="@code"/>
|
||||
</context>
|
||||
|
||||
<context name="try_end" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<keyword String="try" attribute="keyword" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="catch_test" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!lvalue">
|
||||
<RegExpr String="catch\s*[a-zA-Z_]" attribute="control" context="#pop!catch_expr" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="catch_expr" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<keyword String="catch" attribute="keyword" context="#pop!catch_var"/>
|
||||
</context>
|
||||
|
||||
<context name="catch_var" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="var" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="print" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="rvalue">
|
||||
<AnyChar String=",;" attribute="coma"/>
|
||||
<IncludeRules context="@line_break"/>
|
||||
</context>
|
||||
|
||||
<context name="goto" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="label" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="dim" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="var" context="#pop!dim_array"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="dim_array" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="[" attribute="operator" context="#pop!array"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="for" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!for_var">
|
||||
<DetectSpaces/>
|
||||
<keyword String="each" attribute="control" context="#pop!for_each"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="for_each" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="var" context="#pop!for_in"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="for_in" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<keyword String="in" attribute="control" context="#pop!rvalue"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="for_var" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="lvalue">
|
||||
<DetectSpaces/>
|
||||
<keyword String="to" attribute="control" context="#pop!for_to"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="for_to" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="rvalue">
|
||||
<DetectSpaces/>
|
||||
<keyword String="step" attribute="control" context="#pop!rvalue"/>
|
||||
</context>
|
||||
|
||||
<context name="exit" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<keyword String="for" attribute="control" context="#pop"/>
|
||||
<keyword String="while" attribute="control" context="#pop"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<!-- Builtin functions are reserved keywords. They cannot be used as a local variable names.
|
||||
Thus doing something like below is an error and will be highlighted with 'invalid':
|
||||
eval = 1
|
||||
foo = eval
|
||||
It is still valid to use any word, including reserved ones, as an variable parameter:
|
||||
foo.eval = 1
|
||||
foo = bar.eval
|
||||
foo.eval()
|
||||
-->
|
||||
<context name="@lvalue_builtin_functions" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="builtin_functions" context="#pop!lvalue_builtin_function" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_builtin_function" attribute="g" lineEndContext="#pop">
|
||||
<RegExpr String="[a-zA-Z_][a-zA-Z0-1_]*\s*\(" context="#pop!lvalue_builtin_call" lookAhead="true"/>
|
||||
<DetectIdentifier attribute="invalid" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_builtin_call" attribute="g" lineEndContext="#pop">
|
||||
<DetectIdentifier attribute="builtin_func" context="#pop!lvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
|
||||
<context name="@rvalue_builtin_functions" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="builtin_functions" context="#pop!rvalue_builtin_function" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_builtin_function" attribute="g" lineEndContext="#pop">
|
||||
<RegExpr String="[a-zA-Z_][a-zA-Z0-1_]*\s*\(" context="#pop!rvalue_builtin_call" lookAhead="true"/>
|
||||
<DetectIdentifier attribute="invalid" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_builtin_call" attribute="g" lineEndContext="#pop">
|
||||
<DetectIdentifier attribute="builtin_func" context="#pop!rvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Library functions have nothing special comparing to other functions. They just have different
|
||||
highlighting colors. It is valid to shadow function with a variable with the same name,
|
||||
although it is not recommended and might be considered as a warning by various linters.
|
||||
-->
|
||||
<context name="@lvalue_library_functions" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="utility_functions" context="#pop!lvalue_library_function" lookAhead="true"/>
|
||||
<keyword String="string_functions" context="#pop!lvalue_library_function" lookAhead="true"/>
|
||||
<keyword String="math_functions" context="#pop!lvalue_library_function" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_library_function" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!lvalue_var">
|
||||
<RegExpr String="[a-zA-Z_][a-zA-Z0-1_]*\s*\(" context="#pop!lvalue_library_call" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_library_call" attribute="g" lineEndContext="#pop">
|
||||
<DetectIdentifier attribute="library_func" context="#pop!lvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
|
||||
<context name="@rvalue_library_functions" attribute="g" lineEndContext="#stay">
|
||||
<keyword String="utility_functions" context="#pop!rvalue_library_function" lookAhead="true"/>
|
||||
<keyword String="string_functions" context="#pop!rvalue_library_function" lookAhead="true"/>
|
||||
<keyword String="math_functions" context="#pop!rvalue_library_function" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_library_function" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!rvalue_var">
|
||||
<RegExpr String="[a-zA-Z_][a-zA-Z0-1_]*\s*\(" context="#pop!rvalue_library_call" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_library_call" attribute="g" lineEndContext="#pop">
|
||||
<DetectIdentifier attribute="library_func" context="#pop!rvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- lvalue contexts represent expressions of the left side of the assignment operators or
|
||||
standalone function calls.
|
||||
-->
|
||||
<context name="lvalue" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!lvalue_exp">
|
||||
<DetectSpaces/>
|
||||
<keyword String="m" attribute="m" context="#pop!lvalue_m_dot"/>
|
||||
<IncludeRules context="@lvalue_builtin_functions"/>
|
||||
<IncludeRules context="@lvalue_library_functions"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_exp" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<RegExpr String="[a-zA-Z_][a-zA-Z0-1_]*\s*\(" context="#pop!lvalue_call" lookAhead="true"/>
|
||||
<RegExpr String="[a-zA-Z_][a-zA-Z0-1_]*:" attribute="label" context="#pop"/>
|
||||
<DetectIdentifier context="#pop!lvalue_var" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_m_dot" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="." attribute="operator" context="#pop!lvalue_top"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
<IncludeRules context="@lvalue_ops"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_top" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<keyword String="top" attribute="top" context="#pop!lvalue_operator"/>
|
||||
<DetectIdentifier context="#pop!lvalue_exp" lookAhead="true"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_var" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectIdentifier attribute="var" context="#pop!lvalue_var_postfix"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_var_postfix" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!lvalue_operator">
|
||||
<AnyChar String="$%&!#" attribute="var" context="#pop!lvalue_operator"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_operator" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="." attribute="operator" context="#pop!lvalue_exp"/>
|
||||
<IncludeRules context="@lvalue_ops"/>
|
||||
</context>
|
||||
|
||||
<context name="@lvalue_ops" attribute="g" lineEndContext="#stay">
|
||||
<IncludeRules context="@lvalue_call_open_brace"/>
|
||||
<DetectChar char="[" attribute="operator" context="lvalue_array"/>
|
||||
<RegExpr String="(=|\+=|\-=|\*=|/=|\\=|<<=|>>=)" attribute="assign" context="#pop!rvalue"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_array" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="rvalue">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="," attribute="coma"/>
|
||||
<DetectChar char="]" attribute="operator" context="#pop!lvalue_operator"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_call" attribute="g" lineEndContext="#stay">
|
||||
<DetectIdentifier attribute="func" context="#pop!lvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_call_open_brace" attribute="g" lineEndContext="#stay">
|
||||
<IncludeRules context="@lvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
<context name="@lvalue_call_open_brace" attribute="g" lineEndContext="#stay">
|
||||
<DetectChar char="(" attribute="scope" context="lvalue_call_args"/>
|
||||
</context>
|
||||
|
||||
<context name="lvalue_call_args" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="rvalue">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char=")" attribute="scope" context="#pop#pop!lvalue_operator"/>
|
||||
<DetectChar char="," attribute="coma"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- rvalue contexts represent expressions on the right side of assignment operators and arguments
|
||||
to other functions, 'print' calls, object keys, array values, etc.
|
||||
-->
|
||||
<context name="rvalue" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<AnyChar String="-+" attribute="unary"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
<IncludeRules context="@function"/>
|
||||
<IncludeRules context="@sub"/>
|
||||
<keyword String="unary" attribute="unary"/>
|
||||
<keyword String="end_of_scope" context="#pop#pop" lookAhead="true"/>
|
||||
<DetectChar char=""" attribute="string" context="#pop!string"/>
|
||||
<DetectChar char="[" attribute="operator" context="#pop!array"/>
|
||||
<DetectChar char="(" attribute="scope" context="#pop!rvalue_scope"/>
|
||||
<DetectChar char="{" attribute="operator" context="#pop!object"/>
|
||||
<keyword String="constants" attribute="constant" context="#pop!rvalue_operator"/>
|
||||
<RegExpr String="[-+]?[0-9]*\.[0-9]" context="#pop!float" lookAhead="true"/>
|
||||
<RegExpr String="[-+]?[0-9]" context="#pop!int" lookAhead="true"/>
|
||||
<StringDetect String="&h" insensitive="true" attribute="dec" context="#pop!hex"/>
|
||||
<keyword String="m" attribute="m" context="#pop!rvalue_m_dot"/>
|
||||
<IncludeRules context="@rvalue_builtin_functions"/>
|
||||
<IncludeRules context="@rvalue_library_functions"/>
|
||||
<IncludeRules context="@rvalue_dot"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_var" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectIdentifier attribute="var" context="#pop!rvalue_var_postfix"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_var_postfix" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!rvalue_operator">
|
||||
<AnyChar String="$%&!#" attribute="var" context="#pop!rvalue_operator"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_operator" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!rvalue_end">
|
||||
<DetectSpaces/>
|
||||
<AnyChar String=".@" attribute="operator" context="#pop!rvalue_dot"/>
|
||||
<IncludeRules context="@rvalue_ops"/>
|
||||
</context>
|
||||
|
||||
<context name="@rvalue_ops" attribute="g" lineEndContext="#stay">
|
||||
<IncludeRules context="@rvalue_call_open_brace"/>
|
||||
<DetectChar char="[" attribute="operator" context="#pop!array"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_end" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<RegExpr String="=|<>|<<|>>|<=|>=|<|>|\^|\-|\+|\*|\/|\\|(and|or|mod)(?=\W)" insensitive="true" attribute="binary" context="#pop!rvalue"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_m_dot" attribute="g" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!rvalue_end">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="." attribute="operator" context="#pop!rvalue_top"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
<IncludeRules context="@rvalue_ops"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_top" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<keyword String="top" attribute="top" context="#pop!rvalue_operator"/>
|
||||
<DetectIdentifier context="#pop!rvalue_dot" lookAhead="true"/>
|
||||
<IncludeRules context="@comment"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_scope" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="rvalue">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char=")" attribute="scope" context="#pop!rvalue_operator"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_dot" attribute="g" lineEndContext="#stay">
|
||||
<IncludeRules context="@rvalue_dot"/>
|
||||
</context>
|
||||
|
||||
<context name="@rvalue_dot" attribute="g" lineEndContext="#stay">
|
||||
<RegExpr String="[a-zA-Z_][a-zA-Z0-1_]*\s*\(" context="#pop!rvalue_call" lookAhead="true"/>
|
||||
<DetectIdentifier context="#pop!rvalue_var" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Other rvalue expressions. -->
|
||||
<context name="string" attribute="string" lineEndContext="#pop#pop">
|
||||
<DetectChar char=""" attribute="string" context="#pop!rvalue_operator"/>
|
||||
</context>
|
||||
|
||||
<context name="array" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="rvalue">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="," attribute="coma"/>
|
||||
<DetectChar char="]" attribute="operator" context="#pop!rvalue_operator"/>
|
||||
</context>
|
||||
|
||||
<context name="object" attribute="g" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="@comment"/>
|
||||
<DetectChar char="," attribute="coma"/>
|
||||
<DetectChar char="}" attribute="operator" context="#pop!rvalue_operator"/>
|
||||
<DetectChar char=""" attribute="var" context="object_param_string"/>
|
||||
<DetectIdentifier attribute="var" context="object_param_colon"/>
|
||||
</context>
|
||||
|
||||
<context name="object_param_string" attribute="var" lineEndContext="#pop">
|
||||
<DetectChar char=""" attribute="var" context="#pop!object_param_colon"/>
|
||||
</context>
|
||||
|
||||
<context name="object_param_colon" attribute="g" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="@comment"/>
|
||||
<DetectChar char=":" attribute="operator" context="#pop!rvalue"/>
|
||||
</context>
|
||||
|
||||
<context name="float" attribute="float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<!-- documentation says this is a valid string, but implementation gives compile error -->
|
||||
<!--<RegExpr String="[-+]?[0-9]*\.[0-9]+([eE][-+]?[0-9]+)?\$" attribute="string" context="postfix_delimiter"/>-->
|
||||
<!--<RegExpr String="[-+]?[0-9]*\.[0-9]+([eE][-+]?[0-9]+)?[%&]" attribute="dec" context="postfix_delimiter"/>-->
|
||||
<RegExpr String="[-+]?[0-9]*\.[0-9]+([eE][-+]?[0-9]+)?[!#]?" attribute="float" context="postfix_delimiter"/>
|
||||
</context>
|
||||
|
||||
<context name="int" attribute="dec" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<!-- documentation says this is a valid string, but implementation gives compile error -->
|
||||
<!--<RegExpr String="[-+]?[0-9]*\$" attribute="string" context="postfix_delimiter"/>-->
|
||||
<RegExpr String="[-+]?[0-9]*[!#]" attribute="float" context="postfix_delimiter"/>
|
||||
<RegExpr String="[-+]?[0-9]*[%&]?" attribute="dec" context="postfix_delimiter"/>
|
||||
</context>
|
||||
|
||||
<context name="hex" attribute="invalid" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr String="[0-9a-fA-F]+" insensitive="true" attribute="dec" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="postfix_delimiter" attribute="g" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
|
||||
<RegExpr String="[\s\W]" context="#pop#pop!rvalue_operator" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_call" attribute="g" lineEndContext="#stay">
|
||||
<DetectIdentifier attribute="func" context="#pop!rvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_call_open_brace" attribute="g" lineEndContext="#stay">
|
||||
<IncludeRules context="@rvalue_call_open_brace"/>
|
||||
</context>
|
||||
|
||||
<context name="@rvalue_call_open_brace" attribute="g" lineEndContext="#stay">
|
||||
<DetectChar char="(" attribute="scope" context="rvalue_call_args"/>
|
||||
</context>
|
||||
|
||||
<context name="rvalue_call_args" attribute="g" lineEndContext="#stay" fallthrough="true" fallthroughContext="rvalue">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char=")" attribute="scope" context="#pop#pop!rvalue_operator"/>
|
||||
<DetectChar char="," attribute="coma"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
|
||||
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="g" defStyleNum="dsNormal"/>
|
||||
<itemData name="import" defStyleNum="dsImport"/>
|
||||
<itemData name="func" defStyleNum="dsFunction"/>
|
||||
<itemData name="keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="control" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="assign" defStyleNum="dsOperator"/>
|
||||
<itemData name="binary" defStyleNum="dsOperator"/>
|
||||
<itemData name="unary" defStyleNum="dsOperator"/>
|
||||
<itemData name="operator" defStyleNum="dsOperator"/>
|
||||
<itemData name="scope" defStyleNum="dsOperator"/>
|
||||
<itemData name="coma" defStyleNum="dsOperator"/>
|
||||
<itemData name="type" defStyleNum="dsDataType"/>
|
||||
<itemData name="var" defStyleNum="dsVariable"/>
|
||||
<itemData name="comment" defStyleNum="dsComment"/>
|
||||
<itemData name="print" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="builtin_func" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="library_func" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="dec" defStyleNum="dsDecVal"/>
|
||||
<itemData name="float" defStyleNum="dsFloat"/>
|
||||
<itemData name="string" defStyleNum="dsString"/>
|
||||
<itemData name="constant" defStyleNum="dsConstant"/>
|
||||
<itemData name="macro" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="label" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="line_break" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="m" defStyleNum="dsExtension"/>
|
||||
<itemData name="top" defStyleNum="dsExtension"/>
|
||||
<itemData name="invalid" defStyleNum="dsError"/>
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
|
||||
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="'"/>
|
||||
</comments>
|
||||
|
||||
<keywords casesensitive="0" additionalDeliminator="'"/>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,563 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY int "(?:[0-9](?:'?[0-9]++)*+)">
|
||||
<!ENTITY hex_int "(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f]++)*+)">
|
||||
<!ENTITY exp_float "(?:[eE][+-]?∫)">
|
||||
<!ENTITY exp_hexfloat "(?:[pP][-+]?∫)">
|
||||
|
||||
<!ENTITY symbols ":!%&()+,-/.*<=>?[]|~^;">
|
||||
|
||||
<!-- printf-like format strings conversion specifiers -->
|
||||
<!ENTITY printf_like "%[-+ #0]*+(?:[0-9]++|\*)?(?:\.(?:[0-9]++|\*))?(?:(?:hh|ll|[hljzt]|wf?(?:8|16|32|64))?[dioxXubn]|(?:DD|[lLHD])?[fFeEaAgG]|l?[cs]|[p%])">
|
||||
|
||||
<!ENTITY ispphash "(?:#|%\:|\?\?=)">
|
||||
<!ENTITY pphash "&ispphash;\s*">
|
||||
]>
|
||||
<language name="C" section="Sources"
|
||||
version="18" kateversion="5.79"
|
||||
indenter="cstyle"
|
||||
extensions="*.c;*.C;*.h"
|
||||
mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
|
||||
priority="5">
|
||||
<!--
|
||||
|
||||
Fixes by Sebastian Pipping (webmaster@hartwork.org)
|
||||
|
||||
NOTE: Keep in sync with C++ highlighter! (cpp.xml)
|
||||
|
||||
Version 6: add more versatile numbers highlighting, taken from isocpp.xml
|
||||
-->
|
||||
<highlighting>
|
||||
<list name="controlflow">
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>continue</item>
|
||||
<item>default</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>for</item>
|
||||
<item>goto</item>
|
||||
<item>if</item>
|
||||
<item>return</item>
|
||||
<item>switch</item>
|
||||
<item>while</item>
|
||||
</list>
|
||||
|
||||
<list name="keywords">
|
||||
<item>alignas</item> <!-- C23 -->
|
||||
<item>alignof</item> <!-- C23 -->
|
||||
<item>auto</item>
|
||||
<item>constexpr</item> <!-- C23 -->
|
||||
<item>enum</item>
|
||||
<item>extern</item>
|
||||
<item>false</item> <!-- C23 -->
|
||||
<item>inline</item>
|
||||
<item>nullptr</item> <!-- C23 -->
|
||||
<item>sizeof</item>
|
||||
<item>static_assert</item> <!-- C23 -->
|
||||
<item>struct</item>
|
||||
<item>true</item> <!-- C23 -->
|
||||
<item>typedef</item>
|
||||
<item>typeof</item> <!-- C23 -->
|
||||
<item>typeof_unqual</item> <!-- C23 -->
|
||||
<item>union</item>
|
||||
<item>_Alignas</item>
|
||||
<item>_Alignof</item>
|
||||
<item>_Atomic</item>
|
||||
<item>_Noreturn</item>
|
||||
<item>_Static_assert</item>
|
||||
<item>_Thread_local</item>
|
||||
</list>
|
||||
|
||||
<!-- https://en.cppreference.com/w/c/language/attributes -->
|
||||
<list name="attributes">
|
||||
<item>noreturn</item>
|
||||
<item>deprecated</item>
|
||||
<item>fallthrough</item>
|
||||
<item>nodiscard</item>
|
||||
<item>maybe_unused</item>
|
||||
<item>unsequenced</item>
|
||||
<item>reproducible</item>
|
||||
</list>
|
||||
|
||||
<list name="types">
|
||||
<item>bool</item> <!-- C23 -->
|
||||
<item>char</item>
|
||||
<item>char16_t</item>
|
||||
<item>char32_t</item>
|
||||
<item>double</item>
|
||||
<item>float</item>
|
||||
<item>int</item>
|
||||
<item>long</item>
|
||||
<item>short</item>
|
||||
<item>signed</item>
|
||||
<item>unsigned</item>
|
||||
<item>void</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>int_least8_t</item>
|
||||
<item>int_least16_t</item>
|
||||
<item>int_least32_t</item>
|
||||
<item>int_least64_t</item>
|
||||
<item>uint_least8_t</item>
|
||||
<item>uint_least16_t</item>
|
||||
<item>uint_least32_t</item>
|
||||
<item>uint_least64_t</item>
|
||||
<item>int_fast8_t</item>
|
||||
<item>int_fast16_t</item>
|
||||
<item>int_fast32_t</item>
|
||||
<item>int_fast64_t</item>
|
||||
<item>uint_fast8_t</item>
|
||||
<item>uint_fast16_t</item>
|
||||
<item>uint_fast32_t</item>
|
||||
<item>uint_fast64_t</item>
|
||||
<item>size_t</item>
|
||||
<item>ssize_t</item>
|
||||
<item>wchar_t</item>
|
||||
<item>intptr_t</item>
|
||||
<item>uintptr_t</item>
|
||||
<item>intmax_t</item>
|
||||
<item>uintmax_t</item>
|
||||
<item>ptrdiff_t</item>
|
||||
<item>sig_atomic_t</item>
|
||||
<item>wint_t</item>
|
||||
<item>_BitInt</item> <!-- C23 -->
|
||||
<item>_Bool</item>
|
||||
<item>bool</item>
|
||||
<item>_Decimal32</item> <!-- C23 -->
|
||||
<item>_Decimal64</item> <!-- C23 -->
|
||||
<item>_Decimal128</item> <!-- C23 -->
|
||||
<item>_Complex</item>
|
||||
<item>complex</item>
|
||||
<item>_Imaginary</item>
|
||||
<item>imaginary</item>
|
||||
<item>_Generic</item>
|
||||
<item>va_list</item>
|
||||
<item>FILE</item>
|
||||
<item>fpos_t</item>
|
||||
<item>time_t</item>
|
||||
<item>max_align_t</item>
|
||||
|
||||
<!-- modifiers -->
|
||||
<item>const</item>
|
||||
<item>register</item>
|
||||
<item>restrict</item>
|
||||
<item>static</item>
|
||||
<item>thread_local</item> <!-- C23 -->
|
||||
<item>volatile</item>
|
||||
</list>
|
||||
|
||||
<list name="preprocessor">
|
||||
<item>if</item>
|
||||
<item>ifdef</item>
|
||||
<item>ifndef</item>
|
||||
<item>elif</item>
|
||||
<item>elifdef</item> <!-- C23 -->
|
||||
<item>elifndef</item> <!-- C23 -->
|
||||
<item>else</item>
|
||||
<item>endif</item>
|
||||
<item>define</item>
|
||||
<item>include</item>
|
||||
<item>error</item>
|
||||
<item>line</item>
|
||||
<item>pragma</item>
|
||||
<item>undef</item>
|
||||
<item>warning</item>
|
||||
<item>embed</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<DetectSpaces />
|
||||
<!-- Match symbols (partial for fast path) -->
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":()]+-*=>!|&~^,;" />
|
||||
|
||||
<IncludeRules context="match keywords" />
|
||||
<AnyChar context="SelectString" String="UuL"'" lookAhead="1"/>
|
||||
<DetectIdentifier />
|
||||
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
|
||||
<Detect2Chars attribute="Symbol" context="#stay" char="<" char1="%" beginRegion="Brace1" /> <!-- Digraph: { -->
|
||||
<Detect2Chars attribute="Symbol" context="#stay" char="%" char1=">" endRegion="Brace1" /> <!-- Digraph: } -->
|
||||
|
||||
<!-- Detect attributes -->
|
||||
<Detect2Chars attribute="Symbol" context="Attribute" char="[" char1="[" />
|
||||
<StringDetect attribute="Symbol" context="Attribute" String="<:<:" /> <!-- Digraph: [[ -->
|
||||
|
||||
<!-- Match numbers -->
|
||||
<RegExpr context="Number" String="\.?[0-9]" lookAhead="1" />
|
||||
|
||||
<IncludeRules context="FindComments" />
|
||||
<RegExpr context="AfterHash" String="&ispphash;|" firstNonSpace="1" lookAhead="1" />
|
||||
<AnyChar attribute="Symbol" context="#stay" String="&symbols;"/>
|
||||
</context>
|
||||
|
||||
<context name="match keywords" attribute="Normal Text" lineEndContext="#pop">
|
||||
<keyword attribute="Control Flow" context="#stay" String="controlflow"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
</context>
|
||||
|
||||
|
||||
<context name="SelectStringPP" attribute="Preprocessor" lineEndContext="#pop">
|
||||
<IncludeRules context="SelectString"/>
|
||||
</context>
|
||||
<context name="SelectString" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop!String8" char="""/>
|
||||
<DetectChar attribute="Char" context="#pop!Char8" char="'"/>
|
||||
<Detect2Chars context="#pop!SelectStringPrefix" char="U" char1=""" lookAhead="1"/>
|
||||
<Detect2Chars context="#pop!SelectStringPrefix" char="u" char1=""" lookAhead="1"/>
|
||||
<Detect2Chars context="#pop!SelectStringPrefix" char="L" char1=""" lookAhead="1"/>
|
||||
<StringDetect context="#pop!SelectStringPrefix" String="u8"" lookAhead="1"/>
|
||||
<Detect2Chars context="#pop!SelectCharPrefix" char="U" char1="'" lookAhead="1"/>
|
||||
<Detect2Chars context="#pop!SelectCharPrefix" char="u" char1="'" lookAhead="1"/>
|
||||
<Detect2Chars context="#pop!SelectCharPrefix" char="L" char1="'" lookAhead="1"/>
|
||||
<StringDetect context="#pop!SelectCharPrefix" String="u8'" lookAhead="1"/>
|
||||
|
||||
<!-- match identifier -->
|
||||
<keyword attribute="Data Type" context="#pop" String="types"/>
|
||||
<DetectIdentifier context="#pop"/>
|
||||
</context>
|
||||
|
||||
|
||||
<context name="SelectStringPrefix" attribute="String" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="String Literal Prefix" context="#pop!StringPrefix8" char="u" char1="8"/>
|
||||
<AnyChar attribute="String Literal Prefix" context="#pop!StringPrefix16" String="uL"/>
|
||||
<DetectChar attribute="String Literal Prefix" context="#pop!StringPrefix32" char="U"/>
|
||||
</context>
|
||||
<context name="StringPrefix8" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop!String8" char="""/>
|
||||
</context>
|
||||
<context name="StringPrefix16" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop!String16" char="""/>
|
||||
</context>
|
||||
<context name="StringPrefix32" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop!String32" char="""/>
|
||||
</context>
|
||||
|
||||
<context name="SelectCharPrefix" attribute="String" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Char Literal Prefix" context="#pop!CharPrefix8" char="u" char1="8"/>
|
||||
<AnyChar attribute="Char Literal Prefix" context="#pop!CharPrefix16" String="uL"/>
|
||||
<DetectChar attribute="Char Literal Prefix" context="#pop!CharPrefix32" char="U"/>
|
||||
</context>
|
||||
<context name="CharPrefix8" attribute="Char" lineEndContext="#pop">
|
||||
<DetectChar attribute="Char" context="#pop!Char8" char="'"/>
|
||||
</context>
|
||||
<context name="CharPrefix16" attribute="Char" lineEndContext="#pop">
|
||||
<DetectChar attribute="Char" context="#pop!Char16" char="'"/>
|
||||
</context>
|
||||
<context name="CharPrefix32" attribute="Char" lineEndContext="#pop">
|
||||
<DetectChar attribute="Char" context="#pop!Char32" char="'"/>
|
||||
</context>
|
||||
|
||||
|
||||
<context name="String8" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="string normal char" />
|
||||
<Detect2Chars context="String8EscapeX" char="\" char1="x" lookAhead="1"/>
|
||||
<IncludeRules context="string special char" />
|
||||
</context>
|
||||
<context name="String8EscapeX" attribute="String" lineEndContext="#pop">
|
||||
<HlCStringChar attribute="String Char" context="#pop!StringNoHex"/>
|
||||
<Detect2Chars context="#pop" attribute="Error" char="\" char1="x"/>
|
||||
</context>
|
||||
|
||||
<context name="String16" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="string normal char" />
|
||||
<Detect2Chars context="String16EscapeX" char="\" char1="x" lookAhead="1"/>
|
||||
<IncludeRules context="string special char" />
|
||||
</context>
|
||||
<context name="String16EscapeX" attribute="String" lineEndContext="#pop">
|
||||
<RegExpr attribute="String Char" context="#pop!StringNoHex" String="\\x[0-9A-Fa-f]{1,4}" />
|
||||
<Detect2Chars context="#pop" attribute="Error" char="\" char1="x"/>
|
||||
</context>
|
||||
|
||||
<context name="String32" attribute="String" lineEndContext="#pop">
|
||||
<IncludeRules context="string normal char" />
|
||||
<Detect2Chars context="String32EscapeX" char="\" char1="x" lookAhead="1"/>
|
||||
<IncludeRules context="string special char" />
|
||||
</context>
|
||||
<context name="String32EscapeX" attribute="String" lineEndContext="#pop">
|
||||
<RegExpr attribute="String Char" context="#pop!StringNoHex" String="\\x[0-9A-Fa-f]{1,8}" />
|
||||
<Detect2Chars context="#pop" attribute="Error" char="\" char1="x"/>
|
||||
</context>
|
||||
|
||||
<context name="StringNoHex" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Error" context="#pop" String="[0-9A-Fa-f]{1,}" />
|
||||
</context>
|
||||
|
||||
|
||||
<context name="Char8" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
|
||||
<HlCStringChar attribute="String Char" context="CharClose"/>
|
||||
<IncludeRules context="FindSingleChar"/>
|
||||
</context>
|
||||
|
||||
<context name="Char16" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
|
||||
<RegExpr attribute="String Char" context="CharClose" String="\\(?:[tnvbrfa'"\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4})|" />
|
||||
<IncludeRules context="FindSingleChar"/>
|
||||
</context>
|
||||
|
||||
<context name="Char32" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
|
||||
<RegExpr attribute="String Char" context="CharClose" String="\\(?:[tnvbrfa'"\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,8}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})|" />
|
||||
<IncludeRules context="FindSingleChar"/>
|
||||
</context>
|
||||
|
||||
|
||||
<context name="FindSingleChar" attribute="Char" lineEndContext="#pop">
|
||||
<DetectChar attribute="Error" context="#pop" char="'" />
|
||||
<RegExpr attribute="Char" context="CharClose" String="." />
|
||||
</context>
|
||||
<context name="CharClose" attribute="Error" lineEndContext="#pop#pop">
|
||||
<DetectChar attribute="Char" context="#pop#pop" char="'" />
|
||||
</context>
|
||||
|
||||
|
||||
<context name="FindComments" attribute="Normal Text" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true" />
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
|
||||
</context>
|
||||
|
||||
<context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
|
||||
<StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
|
||||
<IncludeRules context="##Doxygen" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment" />
|
||||
</context>
|
||||
|
||||
<context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
|
||||
<LineContinue attribute="Comment" context="#stay"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
|
||||
<context name="string special char" attribute="String" lineEndContext="#pop">
|
||||
<HlCStringChar attribute="String Char"/>
|
||||
<RegExpr attribute="String Char" String="\\(?:u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})|&printf_like;"/>
|
||||
<DetectChar attribute="String" char="%"/>
|
||||
<RegExpr attribute="Error" String="\\(?:u[^"]{0,3}|U[^"]{0,7}|.)"/>
|
||||
<LineContinue attribute="Symbol"/>
|
||||
</context>
|
||||
|
||||
<context name="string normal char" attribute="String" lineEndContext="#pop">
|
||||
<!-- fast way, can be replaced by a `UntilChars` rule if it exists -->
|
||||
<!-- % -> printf format -->
|
||||
<RegExpr attribute="String" context="#stay" String="[^%\\"]+" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
</context>
|
||||
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="AfterHash" fallthroughContext="#pop!LineError">
|
||||
<RegExpr attribute="Preprocessor" context="#pop!PreprocessorCmd" String="&pphash;(?=.)|" firstNonSpace="true" />
|
||||
</context>
|
||||
|
||||
<context name="LineError" attribute="Error" lineEndContext="#pop">
|
||||
<LineContinue attribute="Error" context="#stay" />
|
||||
<RegExpr attribute="Error" context="#stay" String="[^\\]+" />
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="PreprocessorCmd" fallthroughContext="#pop!LineError">
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Include" String="include" insensitive="true" />
|
||||
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="ifdef" beginRegion="PP" lookAhead="true" insensitive="true" />
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="ifndef" beginRegion="PP" lookAhead="true" insensitive="true" />
|
||||
<RegExpr attribute="Preprocessor" context="#pop!Outscoped" String="if\s+0\s*$|" beginRegion="PP" />
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="if" beginRegion="PP" lookAhead="true" insensitive="true" />
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="elif" endRegion="PP" beginRegion="PP" lookAhead="true" insensitive="true" />
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="else" endRegion="PP" beginRegion="PP" insensitive="true" />
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="endif" endRegion="PP" insensitive="true" />
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="elifdef" endRegion="PP" beginRegion="PP" lookAhead="true" insensitive="true" />
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="elifndef" endRegion="PP" beginRegion="PP" lookAhead="true" insensitive="true" />
|
||||
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Define" String="define"/>
|
||||
|
||||
<!-- folding for apple style #pragma mark - label -->
|
||||
<RegExpr attribute="Preprocessor" context="#pop" String="&pphash;pragma\s+mark\s+-\s*|" insensitive="true" endRegion="pragma_mark" />
|
||||
<RegExpr attribute="Preprocessor" context="Preprocessor" String="&pphash;pragma\s+mark|" insensitive="true" endRegion="pragma_mark" beginRegion="pragma_mark" />
|
||||
|
||||
<keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessor" />
|
||||
<!-- GCC extension -->
|
||||
<WordDetect attribute="Preprocessor" context="#pop!Include" String="include_next" />
|
||||
<Int attribute="Preprocessor" context="#pop!Preprocessor"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Preprocessor" lineEndContext="#pop" name="Include">
|
||||
<DetectSpaces />
|
||||
<RangeDetect attribute="Prep. Lib" context="#stay" char=""" char1="""/>
|
||||
<RangeDetect attribute="Prep. Lib" context="#stay" char="<" char1=">"/>
|
||||
<IncludeRules context="Preprocessor" />
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
|
||||
<context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
|
||||
<LineContinue attribute="Symbol" context="#stay"/>
|
||||
<IncludeRules context="FindComments" />
|
||||
</context>
|
||||
|
||||
<context name="Define" attribute="Preprocessor" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="InPreprocessor" />
|
||||
<Detect2Chars attribute="Error" context="#pop!LineError" char="/" char1="/" />
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
|
||||
<IncludeRules context="GNUMacros##GCCExtensions" />
|
||||
<DetectIdentifier attribute="Preprocessor" context="#pop!In Define"/>
|
||||
</context>
|
||||
|
||||
<context name="In Define" attribute="Preprocessor" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<LineContinue attribute="Symbol" context="#stay" />
|
||||
<!-- Match symbols (partial for fast path) -->
|
||||
<AnyChar attribute="Symbol" context="#stay" String="#:(){}]+-*%=>!|&~^,;" />
|
||||
|
||||
<IncludeRules context="match keywords" />
|
||||
<AnyChar context="SelectStringPP" String="UuLR"'" lookAhead="1"/>
|
||||
<DetectIdentifier />
|
||||
|
||||
<!-- Detect attributes -->
|
||||
<Detect2Chars attribute="Symbol" context="Attribute In PP" char="[" char1="[" />
|
||||
<StringDetect attribute="Symbol" context="Attribute In PP" String="<:<:" /> <!-- Digraph: [[ -->
|
||||
|
||||
<!-- Match numbers -->
|
||||
<RegExpr context="Number" String="\.?\d" lookAhead="1" />
|
||||
|
||||
<IncludeRules context="FindComments" />
|
||||
<AnyChar attribute="Symbol" context="#stay" String="#&symbols;"/>
|
||||
</context>
|
||||
|
||||
<context name="Attribute In PP" attribute="Attribute" lineEndContext="#pop">
|
||||
<IncludeRules context="InPreprocessor" />
|
||||
<IncludeRules context="Attribute" />
|
||||
</context>
|
||||
|
||||
<context name="InPreprocessor" attribute="Normal Text" lineEndContext="#pop">
|
||||
<LineContinue attribute="Symbol" context="#stay" />
|
||||
<DetectChar attribute="Error" context="#stay" char="\" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
<DetectChar attribute="String" context="String8" char="""/>
|
||||
<IncludeRules context="FindComments" />
|
||||
<RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if|" beginRegion="PP" firstNonSpace="true" />
|
||||
<RegExpr attribute="Preprocessor" context="#pop" String="&pphash;el(?:se|if(n?def)?)|" firstNonSpace="true" />
|
||||
<RegExpr attribute="Preprocessor" context="#pop" String="&pphash;endif|" endRegion="PP" firstNonSpace="true" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
<DetectChar attribute="String" context="String8" char="""/>
|
||||
<IncludeRules context="FindComments" />
|
||||
<RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if|" beginRegion="PP" firstNonSpace="true" />
|
||||
<RegExpr attribute="Comment" context="#pop" String="&pphash;endif|" endRegion="PP" firstNonSpace="true" />
|
||||
</context>
|
||||
|
||||
|
||||
<context name="Number" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<WordDetect attribute="Decimal" context="IntSuffix" String="0" weakDeliminator="."/>
|
||||
<RegExpr attribute="Float" context="FloatSuffix" String="\.∫&exp_float;?|0[xX](?:\.&hex_int;&exp_hexfloat;?|&hex_int;(?:&exp_hexfloat;|\.&hex_int;?&exp_hexfloat;?))|∫(?:&exp_float;|\.∫?&exp_float;?)" />
|
||||
<IncludeRules context="Integer" />
|
||||
</context>
|
||||
|
||||
<context name="Integer" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar context="#pop!IntStartsWith0" char="0" lookAhead="1"/>
|
||||
<RegExpr attribute="Decimal" context="IntSuffix" String="∫" />
|
||||
<RegExpr attribute="Error" context="#pop" String="[._0-9A-Za-z']++" />
|
||||
</context>
|
||||
<context name="IntStartsWith0" attribute="Normal Text" lineEndContext="#pop">
|
||||
<RegExpr attribute="Hex" context="IntSuffix" String="0[xX]&hex_int;" />
|
||||
<RegExpr attribute="Binary" context="IntSuffix" String="0[Bb][01](?:'?[01]++)*+" />
|
||||
<RegExpr attribute="Octal" context="IntSuffix" String="0(?:'?[0-7]++)++" />
|
||||
<DetectChar attribute="Decimal" context="IntSuffix" char="0"/>
|
||||
</context>
|
||||
|
||||
<context name="IntSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
|
||||
<DetectChar attribute="Error" context="#stay" char="'" />
|
||||
<!-- https://en.cppreference.com/w/c/language/integer_constant#The_type_of_the_integer_constant -->
|
||||
<RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="([Uu](LL?|ll?|wb|WB)?|(LL?|ll?|wb|WB)[Uu]?)\b"/>
|
||||
</context>
|
||||
|
||||
<context name="FloatSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
|
||||
<DetectChar attribute="Error" context="#stay" char="'" />
|
||||
<!-- https://en.cppreference.com/w/c/language/floating_constant#Suffixes -->
|
||||
<AnyChar attribute="Standard Suffix" context="NumericSuffixError" String="fFlL"/>
|
||||
<Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="d" char1="f"/>
|
||||
<Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="D" char1="F"/>
|
||||
<Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="d" char1="d"/>
|
||||
<Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="D" char1="D"/>
|
||||
<Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="d" char1="l"/>
|
||||
<Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="D" char1="L"/>
|
||||
</context>
|
||||
|
||||
<context name="NumericSuffixError" attribute="Error" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">
|
||||
<AnyChar attribute="Error" String=".'0123456789"/>
|
||||
<DetectIdentifier attribute="Error"/>
|
||||
</context>
|
||||
|
||||
<context name="Attribute" attribute="Attribute" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<keyword attribute="Standard Attribute" context="#stay" String="attributes" />
|
||||
<Detect2Chars attribute="Symbol" context="#pop" char="]" char1="]" />
|
||||
<StringDetect attribute="Symbol" context="#pop" String=":>:>" /> <!-- Digraph: ]] -->
|
||||
<AnyChar attribute="Symbol" context="#stay" String="&symbols;" />
|
||||
<!-- Attributes may contain some text: [[deprecated("Reason text")]] -->
|
||||
<DetectChar attribute="String" context="String8" char=""" />
|
||||
<AnyChar attribute="Decimal" context="Integer" String="0123456789" lookAhead="true" />
|
||||
<IncludeRules context="DetectGccAttributes##GCCExtensions" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Standard Attribute" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="Standard Suffix" defStyleNum="dsBuiltIn" spellChecking="false" />
|
||||
<itemData name="Char" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Char Literal Prefix" defStyleNum="dsChar" spellChecking="false" />
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false"/>
|
||||
<itemData name="String Literal Prefix" defStyleNum="dsString" spellChecking="true" />
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/>
|
||||
<itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/>
|
||||
<itemData name="Prep. Lib" defStyleNum="dsImport" spellChecking="false"/>
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" position="afterwhitespace" />
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" additionalDeliminator="#'"" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,398 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!ENTITY version "(?<![-+@$\w.])[0-9]+(\.[0-9]+)*">
|
||||
<!ENTITY noversion "[0-9.]+">
|
||||
]>
|
||||
<language name="Cabal" section="Configuration" version="1" kateversion="5.62"
|
||||
extensions="*.cabal;cabal.config;cabal.project;cabal.project.freeze;cabal.project.local"
|
||||
author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
|
||||
<highlighting>
|
||||
|
||||
<list name="conditional">
|
||||
<item>if</item>
|
||||
<item>elif</item>
|
||||
<item>else</item>
|
||||
</list>
|
||||
|
||||
<list name="function">
|
||||
<item>os</item>
|
||||
<item>arche</item>
|
||||
<item>impl</item>
|
||||
<item>flag</item>
|
||||
</list>
|
||||
|
||||
<list name="category">
|
||||
<item>executable</item>
|
||||
<item>library</item>
|
||||
<item>benchmark</item>
|
||||
<item>test-suite</item>
|
||||
<item>source-repository</item>
|
||||
<item>flag</item>
|
||||
<item>foreign-library</item>
|
||||
<item>custom-setup</item>
|
||||
<item>common</item>
|
||||
</list>
|
||||
|
||||
<list name="constant">
|
||||
<item>True</item>
|
||||
<item>False</item>
|
||||
</list>
|
||||
|
||||
<list name="stmt">
|
||||
<item>asm-options</item>
|
||||
<item>asm-sources</item>
|
||||
<item>author</item>
|
||||
<item>autogen-includes</item>
|
||||
<item>autogen-modules</item>
|
||||
<item>branch</item>
|
||||
<item>bug-reports</item>
|
||||
<item>build-depends</item>
|
||||
<item>build-tool-depends</item>
|
||||
<item>build-tools</item>
|
||||
<item>build-type</item>
|
||||
<item>buildable</item>
|
||||
<item>c-sources</item>
|
||||
<item>cabal-version</item>
|
||||
<item>category</item>
|
||||
<item>cc-options</item>
|
||||
<item>cmm-options</item>
|
||||
<item>cmm-sources</item>
|
||||
<item>copyright</item>
|
||||
<item>cpp-options</item>
|
||||
<item>cxx-options</item>
|
||||
<item>cxx-sources</item>
|
||||
<item>data-dir</item>
|
||||
<item>data-files</item>
|
||||
<item>default-extensions</item>
|
||||
<item>default-language</item>
|
||||
<item>default</item>
|
||||
<item>description</item>
|
||||
<item>executable</item>
|
||||
<item>exposed-modules</item>
|
||||
<item>exposed</item>
|
||||
<item>extensions</item>
|
||||
<item>extra-bundled-libraries</item>
|
||||
<item>extra-doc-files</item>
|
||||
<item>extra-dynamic-library-flavours</item>
|
||||
<item>extra-framework-dirs</item>
|
||||
<item>extra-ghci-libraries</item>
|
||||
<item>extra-lib-dirs-static</item>
|
||||
<item>extra-lib-dirs</item>
|
||||
<item>extra-libraries-static</item>
|
||||
<item>extra-libraries</item>
|
||||
<item>extra-library-flavours</item>
|
||||
<item>extra-source-files</item>
|
||||
<item>extra-tmp-files</item>
|
||||
<item>frameworks</item>
|
||||
<item>ghc-options</item>
|
||||
<item>ghc-prof-options</item>
|
||||
<item>ghc-shared-options</item>
|
||||
<item>ghcjs-options</item>
|
||||
<item>ghcjs-prof-options</item>
|
||||
<item>ghcjs-shared-options</item>
|
||||
<item>homepage</item>
|
||||
<item>hs-source-dir</item>
|
||||
<item>hs-source-dirs</item>
|
||||
<item>hugs-options</item>
|
||||
<item>import</item>
|
||||
<item>include-dirs</item>
|
||||
<item>includes</item>
|
||||
<item>install-includes</item>
|
||||
<item>js-sources</item>
|
||||
<item>ld-options</item>
|
||||
<item>lib-version-info</item>
|
||||
<item>lib-version-linux</item>
|
||||
<item>license-file</item>
|
||||
<item>license</item>
|
||||
<item>location</item>
|
||||
<item>main-is</item>
|
||||
<item>maintainer</item>
|
||||
<item>manual</item>
|
||||
<item>mixins</item>
|
||||
<item>mod-def-file</item>
|
||||
<item>module</item>
|
||||
<item>name</item>
|
||||
<item>nhc98-options</item>
|
||||
<item>options</item>
|
||||
<item>other-extensions</item>
|
||||
<item>other-language</item>
|
||||
<item>other-languages</item>
|
||||
<item>other-modules</item>
|
||||
<item>package-url</item>
|
||||
<item>pkgconfig-depends</item>
|
||||
<item>reexported-modules</item>
|
||||
<item>scope</item>
|
||||
<item>setup-depends</item>
|
||||
<item>signatures</item>
|
||||
<item>stability</item>
|
||||
<item>subdir</item>
|
||||
<item>synopsis</item>
|
||||
<item>tag</item>
|
||||
<item>test-module</item>
|
||||
<item>tested-with</item>
|
||||
<item>type</item>
|
||||
<item>version</item>
|
||||
<item>virtual-modules</item>
|
||||
</list>
|
||||
|
||||
<list name="language">
|
||||
<item>Haskell98</item>
|
||||
<item>Haskell2010</item>
|
||||
</list>
|
||||
|
||||
<list name="compiler">
|
||||
<item>ghc</item>
|
||||
<item>nhc</item>
|
||||
<item>yhc</item>
|
||||
<item>hugs</item>
|
||||
<item>hbc</item>
|
||||
<item>helium</item>
|
||||
<item>jhc</item>
|
||||
<item>lhc</item>
|
||||
</list>
|
||||
|
||||
<list name="build-type">
|
||||
<item>simple</item>
|
||||
<item>custom</item>
|
||||
<item>configure</item>
|
||||
</list>
|
||||
|
||||
<list name="default-extensions">
|
||||
<include>language_pragmas##Haskell</include>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
<WordDetect attribute="Statement" context="stmtVersion" String="version" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtVersion" String="cabal-version" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtBuildType" String="build-type" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtTestWith" String="tested-with" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtLicenseFile" String="license-file" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtLicense" String="license" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtMaintainer" String="maintainer" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtAuthor" String="author" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtName" String="name" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtDescription" String="description" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtCopyright" String="copyright" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtHomepage" String="homepage" insensitive="1"/>
|
||||
<WordDetect attribute="Statement" context="stmtBugReports" String="bug-reports" insensitive="1"/>
|
||||
<keyword attribute="Statement" context="stmt" String="stmt"/>
|
||||
<keyword attribute="Category" context="category" String="category"/>
|
||||
<keyword attribute="Conditional" context="conditional" String="conditional"/>
|
||||
<RegExpr attribute="Other Statement" context="stmt" String="[-\w]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
|
||||
<context name="category" attribute="Category Title" lineEndContext="#pop">
|
||||
<StringDetect attribute="Comment" context="#pop!Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmt" attribute="Normal Text" lineEndContext="#pop!stmt2" fallthroughContext="#pop!stmt2">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!stmt2"/>
|
||||
</context>
|
||||
<context name="stmt2" attribute="Normal Text" lineEndContext="stmtContinuation">
|
||||
<IncludeRules context="findStmt"/>
|
||||
<RegExpr attribute="Normal Text" String="[-\w.]+\s*"/>
|
||||
</context>
|
||||
|
||||
<context name="findOperator" attribute="Normal Text" lineEndContext="#stay">
|
||||
<StringDetect attribute="Operator" String="!"/>
|
||||
<StringDetect attribute="Operator" String="||"/>
|
||||
<StringDetect attribute="Operator" String="&&"/>
|
||||
</context>
|
||||
|
||||
<context name="findStmt" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<IncludeRules context="findOperator"/>
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
<StringDetect attribute="Version Operator" String="==" context="versionOp"/>
|
||||
<StringDetect attribute="Version Operator" String=">=" context="versionOp"/>
|
||||
<StringDetect attribute="Version Operator" String="<=" context="versionOp"/>
|
||||
<StringDetect attribute="Version Operator" String="^>=" context="versionOp"/>
|
||||
<AnyChar attribute="Version Operator" String="<>" context="versionOp"/>
|
||||
<AnyChar String="=^" context="versionOp" lookAhead="1"/>
|
||||
<keyword attribute="Constant" String="constant"/>
|
||||
<keyword attribute="Language" String="language"/>
|
||||
</context>
|
||||
|
||||
<context name="versionOp" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<AnyChar attribute="Error" String="=^!<>"/>
|
||||
<DetectChar attribute="Normal Text" context="#pop!versionOpList" char="{"/>
|
||||
<RegExpr attribute="Version" String="&version;" context="#pop"/>
|
||||
<RegExpr attribute="Error" String="&noversion;" context="#pop"/>
|
||||
</context>
|
||||
<context name="versionOpList" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="Normal Text" char=","/>
|
||||
<DetectChar attribute="Normal Text" context="#pop" char="}"/>
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
<IncludeRules context="findVersion"/>
|
||||
</context>
|
||||
<context name="findVersion" attribute="Normal Text" lineEndContext="#pop">
|
||||
<RegExpr attribute="Version" String="&version;"/>
|
||||
<RegExpr attribute="Error" String="&noversion;"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtContinuation" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Normal Text" String="^\s*[a-zA-Z]+[-0-9a-zA-Z]*\s*:|^\s*(if|else|elif|executable|library|benchmark|test-suite|source-repository|flag|foreign-library|custom-setup|common)(?![-\w])" lookAhead="1" context="#pop#pop" insensitive="1"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtVersion" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop!version">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="Symbol Separator" char=":" context="#pop!version"/>
|
||||
</context>
|
||||
<context name="version" attribute="Normal Text" lineEndContext="stmtContinuation">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
<IncludeRules context="findVersion"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtBuildType" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="stmtContinuation">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="Symbol Separator" char=":"/>
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
<keyword attribute="Built Type" String="build-type"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtTestWith" attribute="Normal Text" lineEndContext="#pop!testWith" fallthroughContext="#pop!testWith">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!testWith"/>
|
||||
</context>
|
||||
<context name="testWith" attribute="Normal Text" lineEndContext="stmtContinuation">
|
||||
<IncludeRules context="findStmt"/>
|
||||
<keyword attribute="Compiler" String="compiler"/>
|
||||
<RegExpr attribute="Error" String="[-\w.]+"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtLicense" attribute="License" lineEndContext="#pop!license" fallthroughContext="#pop!license">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!license"/>
|
||||
</context>
|
||||
<context name="license" attribute="License" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtLicenseFile" attribute="License File" lineEndContext="#pop!licenseFile" fallthroughContext="#pop!licenseFile">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!licenseFile"/>
|
||||
</context>
|
||||
<context name="licenseFile" attribute="License File" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtMaintainer" attribute="Maintainer" lineEndContext="#pop!maintainer" fallthroughContext="#pop!maintainer">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!maintainer"/>
|
||||
</context>
|
||||
<context name="maintainer" attribute="Maintainer" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtAuthor" attribute="Author" lineEndContext="#pop!author" fallthroughContext="#pop!author">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!author"/>
|
||||
</context>
|
||||
<context name="author" attribute="Author" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtName" attribute="Name" lineEndContext="#pop!name" fallthroughContext="#pop!name">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!name"/>
|
||||
</context>
|
||||
<context name="name" attribute="Name" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtDescription" attribute="Description" lineEndContext="#pop!description" fallthroughContext="#pop!description">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!description"/>
|
||||
</context>
|
||||
<context name="description" attribute="Description" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtCopyright" attribute="Copyright" lineEndContext="#pop!copyright" fallthroughContext="#pop!copyright">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!copyright"/>
|
||||
</context>
|
||||
<context name="copyright" attribute="Copyright" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtHomepage" attribute="Homepage" lineEndContext="#pop!homepage" fallthroughContext="#pop!homepage">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!homepage"/>
|
||||
</context>
|
||||
<context name="homepage" attribute="Homepage" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="stmtBugReports" attribute="Bug Reports" lineEndContext="#pop!bugReports" fallthroughContext="#pop!bugReports">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<StringDetect attribute="Symbol Separator" String=":" context="#pop!bugReports"/>
|
||||
</context>
|
||||
<context name="bugReports" attribute="Bug Reports" lineEndContext="stmtContinuation">
|
||||
<StringDetect attribute="Comment" context="Comment" String="--"/>
|
||||
</context>
|
||||
|
||||
<context name="conditional" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<AnyChar attribute="Symbol" String="()"/>
|
||||
<IncludeRules context="findOperator"/>
|
||||
<StringDetect attribute="Comment" context="#pop!Comment" String="--"/>
|
||||
<keyword attribute="Function" String="function" insensitive="0"/>
|
||||
<keyword attribute="Constant" String="constant"/>
|
||||
<DetectIdentifier attribute="Normal Text"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Category" defStyleNum="dsKeyword" spellChecking="0"/>
|
||||
<itemData name="Category Title" defStyleNum="dsAttribute" spellChecking="0"/>
|
||||
<itemData name="Statement" defStyleNum="dsDataType" spellChecking="0"/>
|
||||
<itemData name="Other Statement" defStyleNum="dsPreprocessor" spellChecking="0"/>
|
||||
<itemData name="Name" defStyleNum="dsVerbatimString" spellChecking="0"/>
|
||||
<itemData name="Author" defStyleNum="dsString" spellChecking="0"/>
|
||||
<itemData name="Homepage" defStyleNum="dsSpecialString" spellChecking="0"/>
|
||||
<itemData name="Description" defStyleNum="dsVerbatimString" spellChecking="0"/>
|
||||
<itemData name="Maintainer" defStyleNum="dsString" spellChecking="0"/>
|
||||
<itemData name="Bug Reports" defStyleNum="dsSpecialString" spellChecking="0"/>
|
||||
<itemData name="Copyright" defStyleNum="dsString" spellChecking="0"/>
|
||||
<itemData name="License" defStyleNum="dsString" spellChecking="0"/>
|
||||
<itemData name="License File" defStyleNum="dsString" spellChecking="0"/>
|
||||
<itemData name="Built Type" defStyleNum="dsKeyword" spellChecking="0"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator" spellChecking="0"/>
|
||||
<itemData name="Version Operator" defStyleNum="dsOperator" spellChecking="0"/>
|
||||
<itemData name="Symbol" defStyleNum="dsNormal" spellChecking="0"/>
|
||||
<itemData name="Symbol Separator" defStyleNum="dsNormal" spellChecking="0"/>
|
||||
<itemData name="Version" defStyleNum="dsDecVal" spellChecking="0"/>
|
||||
<itemData name="Constant" defStyleNum="dsConstant" spellChecking="0"/>
|
||||
<itemData name="Language" defStyleNum="dsConstant" spellChecking="0"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="0"/>
|
||||
<itemData name="Conditional" defStyleNum="dsControlFlow" spellChecking="0"/>
|
||||
<itemData name="Compiler" defStyleNum="dsConstant" spellChecking="0"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="0"/>
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="--"/>
|
||||
</comments>
|
||||
<keywords casesensitive="0" weakDeliminator="-"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
@@ -0,0 +1,688 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY null "(?:null|Null|NULL|~)">
|
||||
<!ENTITY bool "(?:y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)">
|
||||
|
||||
<!ENTITY int "(?:0|[\-\+]?[1-9][0-9_]*)">
|
||||
<!ENTITY intOther "[\-\+]?0(?:x_*[0-9a-fA-F][0-9a-fA-F_]*|o?_*[0-7][0-7_]*|b_*[01][01_]*)"> <!-- Hex, Octal, Binary -->
|
||||
<!ENTITY intBase60 "[\-\+]?[1-9][0-9_]*(?:\:[0-5]?[0-9])+">
|
||||
<!ENTITY allInt "(?:&intBase60;|&intOther;|∫)">
|
||||
|
||||
<!ENTITY float "[\-\+]?(?:[0-9][0-9_]*\.[0-9\._]*|\._*[0-9][0-9\._]*)(?:[eE][\-\+]?[0-9]+)?">
|
||||
<!ENTITY floatExp "[\-\+]?[0-9][0-9_]*[eE][\-\+]?[0-9]+">
|
||||
<!ENTITY floatBase60 "[\-\+]?[0-9][0-9_]*(?:\:[0-5]?[0-9])+\.[0-9_]*">
|
||||
<!ENTITY inf "[\-\+]?\.(?:inf|Inf|INF)\b">
|
||||
<!ENTITY nan "\.(?:nan|NaN|NAN)\b">
|
||||
<!ENTITY allFloat "(?:&float;|&floatExp;|&floatBase60;|&inf;|&nan;)">
|
||||
|
||||
<!ENTITY endValue "(?:\s*$|\s+#)">
|
||||
<!ENTITY endValueInline "\s*[:,\[\]\{\}]">
|
||||
<!ENTITY space "[ ]">
|
||||
|
||||
<!-- Key quoted -->
|
||||
<!ENTITY keyDQ ""(?:\\.|[^"])+"\s*">
|
||||
<!ENTITY keySQ "'(?:[^']|'')+'\s*">
|
||||
<!-- Literal/folded operator -->
|
||||
<!ENTITY literalOp "[\|>][\-\+]?">
|
||||
<!-- Key after "?" or "-", used to detect literal/folded operator -->
|
||||
<!ENTITY keyAfterOp "(?:[^"'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)">
|
||||
|
||||
<!ENTITY dataTypes "!!\S+">
|
||||
<!ENTITY alias "&\S+">
|
||||
<!ENTITY reference "\*\S+">
|
||||
|
||||
<!ENTITY dpointsHashAttrPreInline1 "[^\s"'#\-,\}\s][^:#,\}]*(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsHashAttrPreInline2 "\-(?:[^\s:#,\}][^:#,\}]*)?(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsHashAttrPreInline3 "&keyDQ;(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsHashAttrPreInline4 "&keySQ;(?=\:(?:\s|$))">
|
||||
|
||||
<!ENTITY dpointsListAttrPreInline1 "[^"'#\-,\]\s][^:#,\]]*(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsListAttrPreInline2 "\-(?:[^\s:#,\]][^:#,\]]*)?(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsListAttrPreInline3 "&keyDQ;(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsListAttrPreInline4 "&keySQ;(?=\:(?:\s|$))">
|
||||
|
||||
<!ENTITY dpointsAttrPre1 "[^"'#\-\s][^:#]*(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsAttrPre2 "\-(?:[^\s:#][^:#]*)?(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsAttrPre3 "&keyDQ;(?=\:(?:\s|$))">
|
||||
<!ENTITY dpointsAttrPre4 "&keySQ;(?=\:(?:\s|$))">
|
||||
|
||||
<!-- Matches Yaml keys whose values are SQL statements in CartoCSS MML files. -->
|
||||
<!ENTITY sqlKey "(table|layer_by_sql)">
|
||||
|
||||
]>
|
||||
|
||||
<!-- Author: Dr Orlovsky MA <maxim@orlovsky.info> //-->
|
||||
<!-- Modifications (YAML 1.2), values & support for literal/folded style:
|
||||
Nibaldo González S. <nibgonz@gmail.com>
|
||||
These modifications are under the MIT license. //-->
|
||||
<!-- Derive the MML syntax highlighting from the yaml syntax highlighting:
|
||||
Lukas Sommer <sommerluk@gmail.com>
|
||||
These modifications are under the MIT license. //-->
|
||||
|
||||
<!-- Syntax highlighting definition for CartoCSS MML, see https://github.com/mapbox/carto
|
||||
CartoCSS defines two file formats: MML (Map Markup Language) and MSS (Map Stylesheet).
|
||||
This file provides syntax highlighting for MML. As MML is yaml, it is derived from
|
||||
the yaml syntax highlighting definition. It adds SQL highlighting for yaml content
|
||||
since MML typically contains a lot of SQL code.
|
||||
|
||||
NOTE This file is mostly identical to yaml.xml so changes to yaml.xml can and should
|
||||
be backported also to this file.
|
||||
|
||||
HACK There are two keys in MML files that have SQL content: “table” and
|
||||
“layer_by_sql”. The good solution would be to recognize these keys and provide
|
||||
SQL highlighting for their content (and only their content):
|
||||
- folded/literal block: Yes
|
||||
- plain string: Possibly. But special treatment for crazy
|
||||
yaml rules required www.yaml-multiline.info
|
||||
says: “:” cannot appear before a space or
|
||||
newline, and “#” cannot appear after a space
|
||||
or newline
|
||||
- single-quoted/double-quoted string: No. Too complicate and too confusing: it would
|
||||
require special SQL highlighting rules that
|
||||
deals with the escapes.
|
||||
But that could be difficult to implement. However, it seems likely that people
|
||||
write SQL in folded/literal blocks, while not using folded/literal blocks for
|
||||
anything else. So for simplicity we will here highlight all folded/literal blocks
|
||||
as SQL and everything else not, regardless of the key.
|
||||
-->
|
||||
|
||||
<language name="CartoCSS MML" version="2" kateversion="5.44" section="Markup"
|
||||
extensions="*.mml"
|
||||
author="Dr Orlovsky MA (dr.orlovsky@gmail.com), Nibaldo González (nibgonz@gmail.com), Lukas Sommer (sommerluk@gmail.com)" license="LGPL">
|
||||
<highlighting>
|
||||
<contexts>
|
||||
<context attribute="Attribute" lineEndContext="#stay" name="normal" >
|
||||
<StringDetect attribute="Document Header" context="header" String="---" column="0"/>
|
||||
<RegExpr attribute="End of Document" context="EOD" String="^\.\.\.$" column="0"/>
|
||||
<DetectChar attribute="Directive" context="directive" char="%" column="0"/>
|
||||
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
|
||||
<!-- Literal/Folded Style -->
|
||||
<IncludeRules context="find-literal-block" />
|
||||
|
||||
<RegExpr attribute="Operator" firstNonSpace="true" context="dash" String="\-(?=\s|$)" />
|
||||
<DetectChar attribute="Operator" firstNonSpace="true" context="mapping-key" char="?" />
|
||||
|
||||
<DetectChar attribute="Operator" firstNonSpace="true" context="list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" firstNonSpace="true" context="hash" char="{" beginRegion="Hash" />
|
||||
|
||||
<RegExpr attribute="Data Types" firstNonSpace="true" context="after-data" String="&dataTypes;" />
|
||||
<RegExpr attribute="Alias" firstNonSpace="true" context="after-data" String="&alias;" />
|
||||
<RegExpr attribute="Reference" firstNonSpace="true" context="after-data" String="&reference;" />
|
||||
|
||||
<RegExpr attribute="Key" context="dpoints-attribute-pre" String="&dpointsAttrPre1;|&dpointsAttrPre2;|&dpointsAttrPre3;|&dpointsAttrPre4;"/>
|
||||
<RegExpr attribute="Key Points Operator" context="attribute-pre" String=":(?=\s|$)"/>
|
||||
|
||||
<DetectChar attribute="String" firstNonSpace="true" context="string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" firstNonSpace="true" context="stringx" char=""" beginRegion="String" />
|
||||
<IncludeRules context="values-firstnonspace" />
|
||||
<DetectSpaces/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="mapping-key" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Operator" context="#pop!dash" String="\-(?=\s|$)" />
|
||||
<RegExpr attribute="Data Types" context="#pop!after-data" String="&dataTypes;" />
|
||||
<RegExpr attribute="Alias" context="#pop!after-data" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="#pop!after-data" String="&reference;" />
|
||||
|
||||
<DetectChar attribute="Operator" context="#pop!list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" context="#pop!hash" char="{" beginRegion="Hash" />
|
||||
<DetectChar attribute="String" context="#pop!string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="#pop!stringx" char=""" beginRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="dash" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces/>
|
||||
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
||||
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
||||
<IncludeRules context="values" />
|
||||
<DetectChar attribute="Operator" context="#pop!mapping-key" char="?" />
|
||||
<RegExpr attribute="Operator" context="#stay" String="\-(?=\s|$)" />
|
||||
|
||||
<DetectChar attribute="Operator" context="#pop!list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" context="#pop!hash" char="{" beginRegion="Hash" />
|
||||
<DetectChar attribute="String" context="#pop!string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="#pop!stringx" char=""" beginRegion="String" />
|
||||
</context>
|
||||
|
||||
<!-- Highlight lists, hashes and strings after a data type, reference or alias -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="after-data" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
||||
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
||||
|
||||
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
||||
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="Document Header" lineEndContext="#pop" name="header">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<RegExpr attribute="Literal/Folded Operator" context="header-literal-operator" String="\s&literalOp;(?=&endValue;)" lookAhead="true" />
|
||||
</context>
|
||||
<context attribute="Document Header" lineEndContext="#pop#pop" name="header-literal-operator" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Literal/Folded Operator" context="#pop#pop!literal-block-simple" String="&literalOp;" beginRegion="Literal" />
|
||||
</context>
|
||||
|
||||
<context attribute="End of Document" lineEndContext="#stay" name="EOD">
|
||||
</context>
|
||||
|
||||
<context attribute="Directive" lineEndContext="#pop" name="directive">
|
||||
</context>
|
||||
|
||||
<context attribute="Attribute" lineEndContext="#pop#pop" name="attribute">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
</context>
|
||||
|
||||
<context attribute="Attribute" lineEndContext="#stay" name="list-attribute-inline">
|
||||
<AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",]" />
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
</context>
|
||||
<context attribute="Attribute" lineEndContext="#stay" name="hash-attribute-inline">
|
||||
<AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",}" />
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
</context>
|
||||
|
||||
<!-- Attribute -->
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="dpoints-attribute-pre" fallthrough="true" fallthroughContext="#pop!attribute-pre">
|
||||
<DetectChar attribute="Key Points Operator" context="#pop!attribute-pre" char=":" /> <!-- Highlight two points after Key -->
|
||||
</context>
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="attribute-pre" fallthrough="true" fallthroughContext="attribute">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces/>
|
||||
<DetectChar attribute="Operator" context="#stay" char="?" />
|
||||
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
||||
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
||||
<DetectChar attribute="String" context="attribute-string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="attribute-stringx" char=""" beginRegion="String" />
|
||||
<RegExpr attribute="Alias" context="#stay" String="&alias;(?=\s+[\[\{])" />
|
||||
<RegExpr attribute="Reference" context="#stay" String="&reference;(?=\s+[\[\{])" />
|
||||
<RegExpr attribute="Alias" context="attribute" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="attribute" String="&reference;" />
|
||||
<IncludeRules context="values" />
|
||||
<RegExpr attribute="Literal/Folded Operator" context="#stay" String="&literalOp;(?=&endValue;)" />
|
||||
</context>
|
||||
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="default-attribute-pre-inline">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces/>
|
||||
|
||||
<DetectChar attribute="Operator" context="#stay" char="?" />
|
||||
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
||||
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
||||
<DetectChar attribute="String" context="attribute-string-inline" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="attribute-stringx-inline" char=""" beginRegion="String" />
|
||||
<RegExpr attribute="Alias" context="#stay" String="&alias;(?=\s+[\[\{])" />
|
||||
<RegExpr attribute="Reference" context="#stay" String="&reference;(?=\s+[\[\{])" />
|
||||
</context>
|
||||
|
||||
<!-- Attribute Inline, Within List -->
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="dpoints-list-attribute-pre-inline" fallthrough="true" fallthroughContext="#pop!list-attribute-pre-inline">
|
||||
<DetectChar attribute="Key Points Operator" context="#pop!list-attribute-pre-inline" char=":" /> <!-- Highlight two points after Key -->
|
||||
</context>
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="list-attribute-pre-inline" fallthrough="true" fallthroughContext="list-attribute-inline">
|
||||
<IncludeRules context="default-attribute-pre-inline" />
|
||||
<RegExpr attribute="Alias" context="list-attribute-inline" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="list-attribute-inline" String="&reference;" />
|
||||
|
||||
<AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",]" />
|
||||
<IncludeRules context="values-inline" />
|
||||
</context>
|
||||
|
||||
<!-- Attribute Inline, Within Hash -->
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="dpoints-hash-attribute-pre-inline" fallthrough="true" fallthroughContext="#pop!hash-attribute-pre-inline">
|
||||
<DetectChar attribute="Key Points Operator" context="#pop!hash-attribute-pre-inline" char=":" /> <!-- Highlight two points after Key -->
|
||||
</context>
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="hash-attribute-pre-inline" fallthrough="true" fallthroughContext="hash-attribute-inline">
|
||||
<IncludeRules context="default-attribute-pre-inline" />
|
||||
<RegExpr attribute="Alias" context="hash-attribute-inline" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="hash-attribute-inline" String="&reference;" />
|
||||
|
||||
<AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",}" />
|
||||
<IncludeRules context="values-inline" />
|
||||
</context>
|
||||
|
||||
<!-- List -->
|
||||
<!-- Context "find-values-list" highlights values and then sends to "list-element" -->
|
||||
<context attribute="List" lineEndContext="#stay" name="list" fallthrough="true" fallthroughContext="#pop!find-values-list" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Operator" context="#pop!find-values-list" char="?" />
|
||||
</context>
|
||||
<context attribute="List" lineEndContext="#stay" name="list-element" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
|
||||
<DetectChar attribute="Operator" context="#pop" char="]" endRegion="List" />
|
||||
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
||||
|
||||
<RegExpr attribute="Key" context="dpoints-list-attribute-pre-inline" String="&dpointsListAttrPreInline1;|&dpointsListAttrPreInline2;|&dpointsListAttrPreInline3;|&dpointsListAttrPreInline4;"/>
|
||||
<RegExpr attribute="Key Points Operator" context="list-attribute-pre-inline" String=":(?=\s|$)" firstNonSpace="true" />
|
||||
|
||||
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
||||
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
||||
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
||||
|
||||
<DetectChar attribute="Operator" context="#pop!list" char="," />
|
||||
<IncludeRules context="values-list" />
|
||||
</context>
|
||||
|
||||
<!-- Hash -->
|
||||
<context attribute="Hash" lineEndContext="#stay" name="hash" fallthrough="true" fallthroughContext="#pop!hash-element" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Operator" context="#pop!hash-element" char="?" />
|
||||
</context>
|
||||
<context attribute="Hash" lineEndContext="#stay" name="hash-element" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces/>
|
||||
|
||||
<RegExpr attribute="Key" context="dpoints-hash-attribute-pre-inline" String="&dpointsHashAttrPreInline1;|&dpointsHashAttrPreInline2;|&dpointsHashAttrPreInline3;|&dpointsHashAttrPreInline4;"/>
|
||||
<RegExpr attribute="Key Points Operator" context="hash-attribute-pre-inline" String=":(?=\s|$)"/>
|
||||
|
||||
<DetectChar attribute="Operator" context="#pop" char="}" endRegion="Hash" />
|
||||
<DetectChar attribute="Operator" context="#pop!hash" char="," />
|
||||
|
||||
<!-- This improves highlighting in keys with multiple lines -->
|
||||
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
||||
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
||||
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
||||
</context>
|
||||
|
||||
<!-- Strings -->
|
||||
<context attribute="String" lineEndContext="#stay" name="attribute-string" noIndentationBasedFolding="true">
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="escaped-char-singleq" />
|
||||
<DetectChar attribute="String" context="attribute-end" char="'" endRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#stay" name="attribute-stringx" noIndentationBasedFolding="true">
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="escaped-char-doubleq" />
|
||||
<DetectChar attribute="String" context="attribute-end" char=""" endRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#stay" name="attribute-string-inline" noIndentationBasedFolding="true">
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="escaped-char-singleq" />
|
||||
<DetectChar attribute="String" context="attribute-end-inline" char="'" endRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#stay" name="attribute-stringx-inline" noIndentationBasedFolding="true">
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="escaped-char-doubleq" />
|
||||
<DetectChar attribute="String" context="attribute-end-inline" char=""" endRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end-inline">
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<AnyChar context="#pop#pop#pop" lookAhead="true" String="}],"/>
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#stay" name="string" noIndentationBasedFolding="true">
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="escaped-char-singleq" />
|
||||
<DetectChar attribute="String" context="#pop" char="'" endRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#stay" name="stringx" noIndentationBasedFolding="true">
|
||||
<DetectIdentifier />
|
||||
<IncludeRules context="escaped-char-doubleq" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" endRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-doubleq">
|
||||
<RegExpr attribute="Escaped Character" context="#stay" String="\\(?:[\s0abtnvfre"/\\N_Lp]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8})"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-singleq">
|
||||
<Detect2Chars attribute="Escaped Character" context="#stay" char="'" char1="'" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="comment">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<!-- Values -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="values">
|
||||
<RegExpr attribute="Null" context="#stay" String="&null;(?=&endValue;)"/>
|
||||
<RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValue;)"/>
|
||||
<RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValue;)"/>
|
||||
<RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValue;)"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="values-firstnonspace">
|
||||
<RegExpr attribute="Null" firstNonSpace="true" context="#stay" String="&null;(?=&endValue;)"/>
|
||||
<RegExpr attribute="Boolean" firstNonSpace="true" context="#stay" String="&bool;(?=&endValue;)"/>
|
||||
<RegExpr attribute="Float" firstNonSpace="true" context="#stay" String="&allFloat;(?=&endValue;)"/>
|
||||
<RegExpr attribute="Integer" firstNonSpace="true" context="#stay" String="&allInt;(?=&endValue;)"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="values-inline">
|
||||
<RegExpr attribute="Null" context="#stay" String="&null;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValueInline;|&endValue;)"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="values-list">
|
||||
<RegExpr attribute="Null" context="#stay" String="(?:\s|^)&null;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Boolean" context="#stay" String="(?:\s|^)&bool;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Float" context="#stay" String="(?:\s|^)&allFloat;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Integer" context="#stay" String="(?:\s|^)&allInt;(?=&endValueInline;|&endValue;)"/>
|
||||
</context>
|
||||
<!-- If the value is found immediately at the beginning of the list item -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop!list-element" name="find-values-list" fallthrough="true" fallthroughContext="#pop!list-element">
|
||||
<RegExpr attribute="Null" context="#pop!list-element" String="&null;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Boolean" context="#pop!list-element" String="&bool;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Float" context="#pop!list-element" String="&allFloat;(?=&endValueInline;|&endValue;)"/>
|
||||
<RegExpr attribute="Integer" context="#pop!list-element" String="&allInt;(?=&endValueInline;|&endValue;)"/>
|
||||
</context>
|
||||
|
||||
<!-- Literal/Folded Style: http://yaml.org/spec/1.2/spec.html#id2795688 -->
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="find-literal-block">
|
||||
<!-- Do not allow indentation with tabs: -->
|
||||
<RegExpr attribute="Alert" context="#stay" column="0"
|
||||
String="^&space;*\t+\s*(?=(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" />
|
||||
|
||||
<!-- CASE 1: The literal/folded operator is the first character of a line.
|
||||
The text after a space is considered literal.
|
||||
Ex:
|
||||
> |
|
||||
> ^Start the literal text
|
||||
-->
|
||||
<RegExpr attribute="Literal/Folded Operator" context="literal-block-simple" column="0"
|
||||
String="^&literalOp;(?=&endValue;)" beginRegion="Literal" />
|
||||
|
||||
<!-- CASE 2: Only the literal/folded operator is present in a line, after a space (the indentation
|
||||
is captured). The text with the same indentation of the operator will be highlighted as literal.
|
||||
Ex:
|
||||
> key:
|
||||
> |
|
||||
> ^Start the literal text
|
||||
|
||||
However, in this case, the correct way is to use the indentation of the block, not the
|
||||
indentation of the the operator. The problem is that it is difficult to capture.
|
||||
> key1:
|
||||
> key2:
|
||||
> key3:
|
||||
> |
|
||||
> ^Block indentation (correct literal text)
|
||||
-->
|
||||
<RegExpr attribute="Literal/Folded Operator" context="literal-block-only-operator" column="0"
|
||||
String="^(&space;+)&literalOp;(?=&endValue;)" beginRegion="Literal" />
|
||||
|
||||
<!-- CASE 3: There is a Key before the literal/folded operator (Key indentation is captured).
|
||||
The text with the Key's indentation plus a space is considered literal.
|
||||
Ex:
|
||||
> key: |
|
||||
> ^Start the literal text
|
||||
> key: !!type >-
|
||||
> ^Start the folded text
|
||||
-->
|
||||
<RegExpr attribute="Key Points Operator" context="literal-block-key" column="0"
|
||||
String="^(&space;*)\:(?=\s+(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" />
|
||||
<RegExpr attribute="Key" context="literal-block-key" column="0"
|
||||
String="^(&space;*)(?:[^"'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)(?=\:\s+(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" />
|
||||
|
||||
<!-- CASE 4: Is there an operator "?" or "-" at the beginning of the line.
|
||||
NOTE: Nested characters "-" and "?" are considered as part of the indentation.
|
||||
Therefore, the indentation of the Key or the last operator "?" or "-" is captured.
|
||||
Ex:
|
||||
> ? |
|
||||
> ^Start the literal Text
|
||||
> ? - - |
|
||||
> ^Start the literal text
|
||||
> - Key: |
|
||||
> ^Start the literal text
|
||||
> ? - - - - Key: |
|
||||
> ^Start the literal text
|
||||
-->
|
||||
<RegExpr context="start-literal-block-withdash" lookAhead="true" column="0"
|
||||
String="^&space;*(?:\?&space;*|\-&space;+){1,6}(?:(?:&keyDQ;|&keySQ;|[^#\-\?\s]|\-[^\s#])(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?)?&literalOp;&endValue;" />
|
||||
|
||||
<!-- CASE 5: Literal/folded operator after a data type or other content.
|
||||
Ex:
|
||||
> !!type |
|
||||
> ^Start the literal text
|
||||
> key1:
|
||||
> key2:
|
||||
> !!type |
|
||||
> ^Start the literal text
|
||||
-->
|
||||
<RegExpr context="start-literal-block-other" lookAhead="true" column="0"
|
||||
String="^&space;*(?:(?:[&\*]|!!)\S+\s+)+&literalOp;&endValue;" />
|
||||
</context>
|
||||
|
||||
<!-- If the line with the literal operator starts with the "-" or "?" operator.
|
||||
NOTE: The indentation capture is limited to 6 nested operators. -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-withdash" noIndentationBasedFolding="true">
|
||||
<!-- With Key: Capture the Key indentation -->
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s2" String="^(&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s7" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
||||
<!-- Without Key: Capture the indentation of the last operator "?" or "-" -->
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s1" String="^(&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s2" String="^(&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
||||
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
||||
</context>
|
||||
<!-- Capture the indentation of data type, reference or alias -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-other" noIndentationBasedFolding="true">
|
||||
<!-- The text with the same indentation will be considered literal -->
|
||||
<RegExpr attribute="Data Types" context="#pop!literal-block-after-data" String="^(&space;+)&dataTypes;" column="0" />
|
||||
<RegExpr attribute="Alias" context="#pop!literal-block-after-data" String="^(&space;+)&alias;" column="0" />
|
||||
<RegExpr attribute="Reference" context="#pop!literal-block-after-data" String="^(&space;+)&reference;" column="0" />
|
||||
<!-- The text after a space will be considered literal (empty text is captured) -->
|
||||
<RegExpr attribute="Data Types" context="#pop!literal-block-withdash-s1" String="^()&dataTypes;" column="0" />
|
||||
<RegExpr attribute="Alias" context="#pop!literal-block-withdash-s1" String="^()&alias;" column="0" />
|
||||
<RegExpr attribute="Reference" context="#pop!literal-block-withdash-s1" String="^()&reference;" column="0" />
|
||||
</context>
|
||||
|
||||
<!-- Highlight data/attribute before the literal operator (Note that if there is a line
|
||||
break within a string or bracket, the literal line will not be highlighted). -->
|
||||
<context attribute="Attribute" lineEndContext="#pop#pop" name="before-literal-operator" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Operator" context="#pop!end-literal-operator" String="&literalOp;(?=&endValue;)" beginRegion="Literal" />
|
||||
|
||||
<RegExpr attribute="Error" context="#pop#pop" String="(?:[&\*]|!!)\S*&literalOp;(?=&endValue;)" />
|
||||
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
||||
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
||||
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
||||
|
||||
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
||||
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
||||
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
||||
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop#pop" name="dpoints-key-before-literal-operator" fallthrough="true" fallthroughContext="#pop#pop" noIndentationBasedFolding="true">
|
||||
<DetectChar attribute="Key Points Operator" context="#pop!key-before-literal-operator" char=":" />
|
||||
</context>
|
||||
<context attribute="Attribute" lineEndContext="#pop#pop" name="key-before-literal-operator" noIndentationBasedFolding="true">
|
||||
<IncludeRules context="before-literal-operator" />
|
||||
<DetectChar attribute="Operator" context="#stay" char="?" />
|
||||
</context>
|
||||
<context attribute="Attribute" lineEndContext="#pop" name="end-literal-operator" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" />
|
||||
</context>
|
||||
|
||||
<!-- Common rules for the content of the literal blocks -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-default" noIndentationBasedFolding="true">
|
||||
<!-- End literal/folded block -->
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
||||
<!-- Find literal/folded operator -->
|
||||
<RegExpr context="before-literal-operator" String="\S" lookAhead="true" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="literal-block-key-default" noIndentationBasedFolding="true">
|
||||
<!-- End literal/folded block -->
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
||||
<!-- Detect Key before the literal/folded operator -->
|
||||
<RegExpr attribute="Key" context="dpoints-key-before-literal-operator" String="&keyAfterOp;(?=:\s)" />
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="\S" lookAhead="true" endRegion="Literal" />
|
||||
</context>
|
||||
|
||||
<!-- Content of the literal block: -->
|
||||
|
||||
<!-- If the literal operator is starting the line (after a space, use block indentation) -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-only-operator" dynamic="true" noIndentationBasedFolding="true">
|
||||
<StringDetect attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="%1" dynamic="true" column="0" />
|
||||
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s)#" />
|
||||
<RegExpr context="#pop" String="\S" lookAhead="true" endRegion="Literal" />
|
||||
</context>
|
||||
<!-- If the literal operator is the first character of a line (or after header) -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-simple" noIndentationBasedFolding="true">
|
||||
<DetectSpaces attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" column="0" />
|
||||
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
||||
<RegExpr attribute="Comment" context="comment" String="(?:^|\s)#" />
|
||||
</context>
|
||||
<!-- If there is a data type or other content before the liretal operator (use block indentation) -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-after-data" dynamic="true" noIndentationBasedFolding="true">
|
||||
<StringDetect attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="%1" dynamic="true" column="0" />
|
||||
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
||||
<RegExpr context="before-literal-operator" String="\S" lookAhead="true" />
|
||||
</context>
|
||||
<!-- If there is a key before the literal operator -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1\s" dynamic="true" column="0" />
|
||||
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
||||
<!-- Attribute of the Key (the Key was previously highlighted) -->
|
||||
<RegExpr attribute="Key Points Operator" context="key-before-literal-operator" String=":\s" />
|
||||
<RegExpr context="key-before-literal-operator" String="\S" lookAhead="true" />
|
||||
</context>
|
||||
<context attribute="Literal/Folded Block" lineEndContext="#pop" name="injected-sql" noIndentationBasedFolding="true">
|
||||
<!-- CartoCSS is a preprocessor for Mapnik, which supports exclusivly
|
||||
PostgreSQL (with the PostGIS extension) as database, therefore we
|
||||
choose the Postgre flavor of SQL syntax hightlighting here.
|
||||
The includeAttrib="true" in <IncludeRules> will override
|
||||
the attribute="Literal/Folded Block" of the current <context>
|
||||
with attribute="WHATEVER" of the default <context> of
|
||||
"##SQL (PostgreSQL)". This ensures that we get the identical
|
||||
highlighting as in SQL even for default text that has no special
|
||||
rule in the “SQL (PostgreSQL)” syntax highlighting. -->
|
||||
<IncludeRules context="##SQL (PostgreSQL)" includeAttrib="true"/>
|
||||
</context>
|
||||
|
||||
<!-- If there are dashes/"?" before the literal operator -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s1" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s2" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2&space;\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s3" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3&space;{2}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s4" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4&space;{3}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s5" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5&space;{4}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s6" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6&space;{5}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-default" />
|
||||
</context>
|
||||
<!-- If there are dashes/"?" and a Key before the literal operator -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s2" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2&space;\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-key-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s3" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3&space;{2}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-key-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s4" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4&space;{3}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-key-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s5" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5&space;{4}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-key-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s6" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6&space;{5}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-key-default" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s7" dynamic="true" noIndentationBasedFolding="true">
|
||||
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6%7&space;{6}\s" dynamic="true" column="0" />
|
||||
<IncludeRules context="literal-block-key-default" />
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsAttribute" spellChecking="false" />
|
||||
<itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false" />
|
||||
<itemData name="List" defStyleNum="dsAttribute" spellChecking="false" />
|
||||
<itemData name="Hash" defStyleNum="dsAttribute" spellChecking="false" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="End of Document" defStyleNum="dsComment" />
|
||||
<itemData name="Document Header" defStyleNum="dsPreprocessor" spellChecking="false" />
|
||||
<itemData name="Data Types" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Alias" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Reference" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Key" defStyleNum="dsFunction" bold="1" spellChecking="false" />
|
||||
<itemData name="Directive" defStyleNum="dsPreprocessor" spellChecking="false" />
|
||||
<itemData name="Key Points Operator" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Operator" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="false" />
|
||||
<itemData name="Escaped Character" defStyleNum="dsSpecialChar" spellChecking="false" />
|
||||
<itemData name="Literal/Folded Operator" defStyleNum="dsChar" spellChecking="false" bold="1" />
|
||||
<itemData name="Literal/Folded Block" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="Null" defStyleNum="dsChar" spellChecking="false" />
|
||||
<itemData name="Boolean" defStyleNum="dsChar" spellChecking="false" />
|
||||
<itemData name="Integer" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false" />
|
||||
<itemData name="Alert" defStyleNum="dsAlert" backgroundColor="#EF9A9A" spellChecking="false" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<folding indentationsensitive="1" />
|
||||
<emptyLines>
|
||||
<emptyLine regexpr="(?:\s+|\s*#.*)"/>
|
||||
</emptyLines>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" position="afterwhitespace" />
|
||||
</comments>
|
||||
<keywords casesensitive="1"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,329 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!ENTITY regexpr_identifier "([\w_-]+)">
|
||||
<!ENTITY regexpr_variable "(@®expr_identifier;)">
|
||||
<!ENTITY anychar_operator ":,!/*-+=><()%">
|
||||
<!ENTITY regexpr_number "(\-?((\d+(\.\d+)?)|(\.\d+))%?)">
|
||||
<!ENTITY regexpr_color "((#[\dabcdefABCDEF]{3}|#[\dabcdefABCDEF]{6})(?=(\W|$)))">
|
||||
]>
|
||||
<!-- Syntax highlighting definition for CartoCSS MSS, see https://github.com/mapbox/carto
|
||||
CartoCSS defines two file formats: MML (Map Markup Language) and MSS (Map Stylesheet).
|
||||
This file provides syntax highlighting for MSS. MSS is similar in syntax to CSS,
|
||||
but completly different in its semantics. -->
|
||||
<language name="CartoCSS MSS"
|
||||
version="6"
|
||||
kateversion="5.0"
|
||||
section="Markup"
|
||||
extensions="*.mss"
|
||||
author="Lukas Sommer"
|
||||
license="CC0 Public Domain Dedication, version 1.0, as published by Creative Commons">
|
||||
|
||||
|
||||
<highlighting>
|
||||
|
||||
<list name="list_colornames">
|
||||
<!-- This list is based on https://github.com/mapbox/carto/blob/35773a5f519b1ded0d88b14d53ac875cd610bb8c/build/vim-carto/syntax/carto.vim#L53
|
||||
and https://github.com/mapbox/carto/blob/35773a5f519b1ded0d88b14d53ac875cd610bb8c/build/carto.tmbundle/Syntaxes/carto.tmLanguage#L279
|
||||
-->
|
||||
<item>aliceblue</item>
|
||||
<item>antiquewhite</item>
|
||||
<item>aqua</item>
|
||||
<item>aquamarine</item>
|
||||
<item>azure</item>
|
||||
<item>beige</item>
|
||||
<item>bisque</item>
|
||||
<item>black</item>
|
||||
<item>blanchedalmond</item>
|
||||
<item>blue</item>
|
||||
<item>blueviolet</item>
|
||||
<item>brown</item>
|
||||
<item>burlywood</item>
|
||||
<item>cadetblue</item>
|
||||
<item>chartreuse</item>
|
||||
<item>chocolate</item>
|
||||
<item>coral</item>
|
||||
<item>cornflowerblue</item>
|
||||
<item>cornsilk</item>
|
||||
<item>crimson</item>
|
||||
<item>cyan</item>
|
||||
<item>darkblue</item>
|
||||
<item>darkcyan</item>
|
||||
<item>darkgoldenrod</item>
|
||||
<item>darkgray</item>
|
||||
<item>darkgreen</item>
|
||||
<item>darkgrey</item>
|
||||
<item>darkkhaki</item>
|
||||
<item>darkmagenta</item>
|
||||
<item>darkolivegreen</item>
|
||||
<item>darkorange</item>
|
||||
<item>darkorchid</item>
|
||||
<item>darkred</item>
|
||||
<item>darksalmon</item>
|
||||
<item>darkseagreen</item>
|
||||
<item>darkslateblue</item>
|
||||
<item>darkslategrey</item>
|
||||
<item>darkturquoise</item>
|
||||
<item>darkviolet</item>
|
||||
<item>deeppink</item>
|
||||
<item>deepskyblue</item>
|
||||
<item>dimgray</item>
|
||||
<item>dimgrey</item>
|
||||
<item>dodgerblue</item>
|
||||
<item>firebrick</item>
|
||||
<item>floralwhite</item>
|
||||
<item>forestgreen</item>
|
||||
<item>fuchsia</item>
|
||||
<item>gainsboro</item>
|
||||
<item>ghostwhite</item>
|
||||
<item>gold</item>
|
||||
<item>goldenrod</item>
|
||||
<item>gray</item>
|
||||
<item>grey</item>
|
||||
<item>green</item>
|
||||
<item>greenyellow</item>
|
||||
<item>honeydew</item>
|
||||
<item>hotpink</item>
|
||||
<item>indianred</item>
|
||||
<item>indigo</item>
|
||||
<item>ivory</item>
|
||||
<item>khaki</item>
|
||||
<item>lavender</item>
|
||||
<item>lavenderblush</item>
|
||||
<item>lawngreen</item>
|
||||
<item>lemonchiffon</item>
|
||||
<item>lightblue</item>
|
||||
<item>lightcoral</item>
|
||||
<item>lightcyan</item>
|
||||
<item>lightgoldenrodyellow</item>
|
||||
<item>lightgray</item>
|
||||
<item>lightgreen</item>
|
||||
<item>lightgrey</item>
|
||||
<item>lightpink</item>
|
||||
<item>lightsalmon</item>
|
||||
<item>lightseagreen</item>
|
||||
<item>lightskyblue</item>
|
||||
<item>lightslategray</item>
|
||||
<item>lightslategrey</item>
|
||||
<item>lightsteelblue</item>
|
||||
<item>lightyellow</item>
|
||||
<item>lime</item>
|
||||
<item>limegreen</item>
|
||||
<item>linen</item>
|
||||
<item>magenta</item>
|
||||
<item>maroon</item>
|
||||
<item>mediumaquamarine</item>
|
||||
<item>mediumblue</item>
|
||||
<item>mediumorchid</item>
|
||||
<item>mediumpurple</item>
|
||||
<item>mediumseagreen</item>
|
||||
<item>mediumslateblue</item>
|
||||
<item>mediumspringgreen</item>
|
||||
<item>mediumturquoise</item>
|
||||
<item>mediumvioletred</item>
|
||||
<item>midnightblue</item>
|
||||
<item>mintcream</item>
|
||||
<item>mistyrose</item>
|
||||
<item>moccasin</item>
|
||||
<item>navajowhite</item>
|
||||
<item>navy</item>
|
||||
<item>oldlace</item>
|
||||
<item>olive</item>
|
||||
<item>olivedrab</item>
|
||||
<item>orange</item>
|
||||
<item>orangered</item>
|
||||
<item>orchid</item>
|
||||
<item>palegoldenrod</item>
|
||||
<item>palegreen</item>
|
||||
<item>paleturquoise</item>
|
||||
<item>palevioletred</item>
|
||||
<item>papayawhip</item>
|
||||
<item>peachpuff</item>
|
||||
<item>peru</item>
|
||||
<item>pink</item>
|
||||
<item>plum</item>
|
||||
<item>powderblue</item>
|
||||
<item>purple</item>
|
||||
<item>red</item>
|
||||
<item>rosybrown</item>
|
||||
<item>royalblue</item>
|
||||
<item>saddlebrown</item>
|
||||
<item>salmon</item>
|
||||
<item>sandybrown</item>
|
||||
<item>seagreen</item>
|
||||
<item>seashell</item>
|
||||
<item>sienna</item>
|
||||
<item>silver</item>
|
||||
<item>skyblue</item>
|
||||
<item>slateblue</item>
|
||||
<item>slategray</item>
|
||||
<item>slategrey</item>
|
||||
<item>snow</item>
|
||||
<item>springgreen</item>
|
||||
<item>steelblue</item>
|
||||
<item>tan</item>
|
||||
<item>teal</item>
|
||||
<item>thistle</item>
|
||||
<item>tomato</item>
|
||||
<item>turquoise</item>
|
||||
<item>violet</item>
|
||||
<item>wheat</item>
|
||||
<item>white</item>
|
||||
<item>whitesmoke</item>
|
||||
<item>yellow</item>
|
||||
<item>yellowgreen</item>
|
||||
<item>transparent</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context attribute="Mapnik Symbolizer Parameter" lineEndContext="#stay" name="context_default">
|
||||
<DetectSpaces/>
|
||||
<Detect2Chars attribute="Comment" context="context_comment_multiline" char="/" char1="*" lookAhead="true" beginRegion="region_comment"/>
|
||||
<Detect2Chars attribute="Comment" context="context_comment_singleline" char="/" char1="/" lookAhead="true"/>
|
||||
<DetectChar attribute="Operator" char="{" beginRegion="region_braces"/>
|
||||
<DetectChar attribute="Operator" char="}" endRegion="region_braces"/>
|
||||
<DetectChar attribute="Operator" char="[" context="context_filter_attribute"/> <!-- This rule must be _before_ the “Operator” rule to make sure it is working. -->
|
||||
<RegExpr attribute="Attachment" String="::®expr_identifier;"/> <!-- This rule must be _before_ the “Operator” rule to make sure it is working. -->
|
||||
<DetectChar attribute="Operator" char=":" context="context_expression"/>
|
||||
<RegExpr attribute="CartoCSS Variable" String="®expr_variable;"/>
|
||||
<RegExpr attribute="Named instances" String="®expr_identifier;/"/>
|
||||
<RegExpr attribute="Layer ID" String="#®expr_identifier;"/>
|
||||
<RegExpr attribute="Class" String="\.®expr_identifier;"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Keyword" lineEndContext="#stay" name="context_expression">
|
||||
<DetectSpaces/>
|
||||
<RangeDetect char="[" char1="]" attribute="Data Field"/> <!-- This rule must be _before_ the “Operator” rule to make sure it is working. -->
|
||||
<RegExpr attribute="Number" String="®expr_number;"/> <!-- This rule must be _before_ the “Operator” rule to make sure it is working. -->
|
||||
<AnyChar attribute="Operator" String="&anychar_operator;[]"/>
|
||||
<RegExpr attribute="CartoCSS Variable" String="®expr_variable;"/>
|
||||
<RegExpr attribute="Function" String="®expr_identifier;(?=\()"/>
|
||||
<RegExpr attribute="Color" String="®expr_color;"/>
|
||||
<keyword attribute="Color" context="#stay" String="list_colornames"/>
|
||||
<!-- The strings that might appear hear (both single-quoted and double-quoted strings)
|
||||
are either normal strings or expression strings: If they are the only content
|
||||
(like in “test: "mystring";”) than they are expression strings. If there is other
|
||||
content (like in “test: "mystring" + [myfield];” or “test: [myfield] + "mystring";”),
|
||||
than they are normal strings. This is however difficult to detect, therefore we default
|
||||
simply to expression strings.-->
|
||||
<DetectChar attribute="Expression String" char=""" context="context_expressionstring_doublequote"/>
|
||||
<DetectChar attribute="Expression String" char="'" context="context_expressionstring_singlequote"/>
|
||||
<!-- An expression ends with a semicolon “;”. However, the
|
||||
CartoCSS parser allows to omit the semicolon at the end
|
||||
of a block of curly braces “{}”. Therefore, we also
|
||||
have to detect the closing curly braces “}” here: -->
|
||||
<DetectChar attribute="Operator" char=";" context="#pop"/>
|
||||
<DetectChar attribute="Operator" char="}" endRegion="region_braces" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Data Field" lineEndContext="#stay" name="context_filter_attribute">
|
||||
<DetectSpaces/>
|
||||
<RegExpr attribute="CartoCSS Variable" String="®expr_variable;"/>
|
||||
<AnyChar attribute="Operator" String="&anychar_operator;" context="context_filter_rule"/>
|
||||
<WordDetect String="zoom" insensitive="true" attribute="Keyword"/>
|
||||
<DetectChar attribute="Data Field" char=""" context="context_filter_attribute_doublequote"/>
|
||||
<DetectChar attribute="Data Field" char="'" context="context_filter_attribute_singlequote"/>
|
||||
<DetectChar attribute="Operator" char="]" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Data Field" lineEndContext="#pop" name="context_filter_attribute_doublequote">
|
||||
<DetectChar char=""" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Data Field" lineEndContext="#pop" name="context_filter_attribute_singlequote">
|
||||
<DetectChar char="'" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Keyword" lineEndContext="#stay" name="context_filter_rule">
|
||||
<DetectSpaces/>
|
||||
<RegExpr attribute="Number" String="®expr_number;"/> <!-- This rule must be _before_ the “Operator” rule to make sure it is working. -->
|
||||
<AnyChar attribute="Operator" String="&anychar_operator;"/>
|
||||
<RegExpr attribute="CartoCSS Variable" String="®expr_variable;"/>
|
||||
<WordDetect String="zoom" insensitive="true" attribute="Keyword"/>
|
||||
<RegExpr attribute="Function" String="®expr_identifier;(?=\()"/>
|
||||
<RegExpr attribute="Color" String="®expr_color;"/>
|
||||
<keyword attribute="Color" context="#stay" String="list_colornames"/>
|
||||
<DetectChar attribute="Normal String" char=""" context="context_normalstring_doublequote"/>
|
||||
<DetectChar attribute="Normal String" char="'" context="context_normalstring_singlequote"/>
|
||||
<DetectChar attribute="Operator" char="]" context="#pop#pop"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="context_comment_multiline">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="region_comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="context_comment_singleline">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Expression String" lineEndContext="#pop" name="context_expressionstring_doublequote">
|
||||
<DetectChar attribute="Expression String" char=""" context="#pop"/>
|
||||
<RangeDetect char="[" char1="]" attribute="Data Field"/>
|
||||
<RegExpr attribute="Mapnik Render-Time Variable" String="®expr_variable;"/>
|
||||
<DetectChar attribute="Normal String" char="'" context="context_normalstring_singlequote"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Expression String" lineEndContext="#pop" name="context_expressionstring_singlequote">
|
||||
<DetectChar attribute="Expression String" char="'" context="#pop"/>
|
||||
<RangeDetect char="[" char1="]" attribute="Data Field"/>
|
||||
<RegExpr attribute="Mapnik Render-Time Variable" String="®expr_variable;"/>
|
||||
<DetectChar attribute="Normal String" char=""" context="context_normalstring_doublequote"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal String" lineEndContext="#pop" name="context_include_escape_characters">
|
||||
<!-- Helper context. Can be included in other contexts to detect escape characters. -->
|
||||
<RegExpr attribute="Escape Sequenze" String="(\\[abfnrtv"'\\])|(\\u[0-9a-fA-F]{4})|(\\U[0-9a-fA-F]{8})"/>
|
||||
<RegExpr attribute="Error" String="\\[uU]"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal String" lineEndContext="#pop" name="context_normalstring_doublequote">
|
||||
<DetectChar attribute="Normal String" char=""" context="#pop"/>
|
||||
<IncludeRules context="context_include_escape_characters"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal String" lineEndContext="#pop" name="context_normalstring_singlequote">
|
||||
<DetectChar attribute="Normal String" char="'" context="#pop"/>
|
||||
<IncludeRules context="context_include_escape_characters"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Class" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Layer ID" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Attachment" defStyleNum="dsControlFlow" spellChecking="false"/>
|
||||
<itemData name="Named instances" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Mapnik Symbolizer Parameter" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Number" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>
|
||||
<itemData name="Expression String" defStyleNum="dsSpecialString" spellChecking="false"/>
|
||||
<!-- “Mapnik Render-Time Variable” work completly different from “CartoCSS Variable” and
|
||||
has therefore a completly different color. -->
|
||||
<itemData name="Mapnik Render-Time Variable" defStyleNum="dsSpecialChar" spellChecking="false"/>
|
||||
<itemData name="Normal String" defStyleNum="dsString" spellChecking="false"/>
|
||||
<itemData name="Escape Sequenze" defStyleNum="dsSpecialChar" spellChecking="false"/>
|
||||
<itemData name="Data Field" defStyleNum="dsVariable" spellChecking="false"/>
|
||||
<!-- “CartoCSS Variable”, inspite of its name, uses “dsPreprocessor” as default color.
|
||||
This is appropriate because it actually behaves rather like a preprocessor: It is even
|
||||
possible to define strings, and if escape sequences like “\n” are treated as such
|
||||
is decided later, depending on the position of the actual usage of the variable. -->
|
||||
<itemData name="CartoCSS Variable" defStyleNum="dsPreprocessor" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" position="afterwhitespace"/>
|
||||
<comment name="multiLine" start="/*" end="*/" region="region_comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="true" weakDeliminator="-"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,240 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="CashScript" section="Sources" version="1" kateversion="5.0" indenter="cstyle" mimetype="" extensions="*.cash" priority="5" author="James Zuccon" license="MIT">
|
||||
<highlighting>
|
||||
<list name="types">
|
||||
<item>address</item>
|
||||
<item>int</item>
|
||||
<item>bool</item>
|
||||
<item>string</item>
|
||||
<item>pubkey</item>
|
||||
<item>sig</item>
|
||||
<item>datasig</item>
|
||||
<item>byte</item>
|
||||
<item>bytes</item>
|
||||
<item>bytes1</item>
|
||||
<item>bytes2</item>
|
||||
<item>bytes3</item>
|
||||
<item>bytes4</item>
|
||||
<item>bytes5</item>
|
||||
<item>bytes6</item>
|
||||
<item>bytes7</item>
|
||||
<item>bytes8</item>
|
||||
<item>bytes9</item>
|
||||
<item>bytes10</item>
|
||||
<item>bytes11</item>
|
||||
<item>bytes12</item>
|
||||
<item>bytes13</item>
|
||||
<item>bytes14</item>
|
||||
<item>bytes15</item>
|
||||
<item>bytes16</item>
|
||||
<item>bytes17</item>
|
||||
<item>bytes18</item>
|
||||
<item>bytes19</item>
|
||||
<item>bytes20</item>
|
||||
<item>bytes21</item>
|
||||
<item>bytes22</item>
|
||||
<item>bytes23</item>
|
||||
<item>bytes24</item>
|
||||
<item>bytes25</item>
|
||||
<item>bytes26</item>
|
||||
<item>bytes27</item>
|
||||
<item>bytes28</item>
|
||||
<item>bytes29</item>
|
||||
<item>bytes30</item>
|
||||
<item>bytes31</item>
|
||||
<item>bytes32</item>
|
||||
<item>bytes33</item>
|
||||
<item>bytes34</item>
|
||||
<item>bytes35</item>
|
||||
<item>bytes36</item>
|
||||
<item>bytes37</item>
|
||||
<item>bytes38</item>
|
||||
<item>bytes39</item>
|
||||
<item>bytes40</item>
|
||||
<item>bytes41</item>
|
||||
<item>bytes42</item>
|
||||
<item>bytes43</item>
|
||||
<item>bytes44</item>
|
||||
<item>bytes45</item>
|
||||
<item>bytes46</item>
|
||||
<item>bytes47</item>
|
||||
<item>bytes48</item>
|
||||
<item>bytes49</item>
|
||||
<item>bytes50</item>
|
||||
<item>bytes51</item>
|
||||
<item>bytes52</item>
|
||||
<item>bytes53</item>
|
||||
<item>bytes54</item>
|
||||
<item>bytes55</item>
|
||||
<item>bytes56</item>
|
||||
<item>bytes57</item>
|
||||
<item>bytes58</item>
|
||||
<item>bytes59</item>
|
||||
<item>bytes60</item>
|
||||
<item>bytes61</item>
|
||||
<item>bytes62</item>
|
||||
<item>bytes63</item>
|
||||
<item>bytes64</item>
|
||||
<item>bytes65</item>
|
||||
<item>bytes66</item>
|
||||
<item>bytes67</item>
|
||||
<item>bytes68</item>
|
||||
<item>bytes69</item>
|
||||
<item>bytes70</item>
|
||||
<item>bytes71</item>
|
||||
<item>bytes72</item>
|
||||
<item>bytes73</item>
|
||||
<item>bytes74</item>
|
||||
<item>bytes75</item>
|
||||
<item>bytes76</item>
|
||||
<item>bytes77</item>
|
||||
<item>bytes78</item>
|
||||
<item>bytes79</item>
|
||||
<item>bytes80</item>
|
||||
<item>bytes81</item>
|
||||
<item>bytes82</item>
|
||||
<item>bytes83</item>
|
||||
<item>bytes84</item>
|
||||
<item>bytes85</item>
|
||||
<item>bytes86</item>
|
||||
<item>bytes87</item>
|
||||
<item>bytes88</item>
|
||||
<item>bytes89</item>
|
||||
<item>bytes90</item>
|
||||
<item>bytes91</item>
|
||||
<item>bytes92</item>
|
||||
<item>bytes93</item>
|
||||
<item>bytes94</item>
|
||||
<item>bytes95</item>
|
||||
<item>bytes96</item>
|
||||
<item>bytes97</item>
|
||||
<item>bytes98</item>
|
||||
<item>bytes99</item>
|
||||
</list>
|
||||
<list name="units">
|
||||
<item>satoshis</item>
|
||||
<item>sats</item>
|
||||
<item>finney</item>
|
||||
<item>bits</item>
|
||||
<item>bitcoin</item>
|
||||
<item>seconds</item>
|
||||
<item>minutes</item>
|
||||
<item>hours</item>
|
||||
<item>days</item>
|
||||
<item>weeks</item>
|
||||
</list>
|
||||
<list name="globals">
|
||||
<!-- General -->
|
||||
<item>require</item>
|
||||
<!-- Arithmetic functions -->
|
||||
<item>abs</item>
|
||||
<item>min</item>
|
||||
<item>max</item>
|
||||
<item>within</item>
|
||||
<!-- Hashing functions -->
|
||||
<item>hash160</item>
|
||||
<item>hash256</item>
|
||||
<item>ripemd160</item>
|
||||
<item>sha1</item>
|
||||
<item>sha256</item>
|
||||
<!-- Signature checking functions -->
|
||||
<item>checkSig</item>
|
||||
<item>checkMultiSig</item>
|
||||
<item>checkDataSig</item>
|
||||
<!-- LockingBytecode -->
|
||||
<item>LockingBytecodeP2PKH</item>
|
||||
<item>LockingBytecodeP2SH20</item>
|
||||
<item>LockingBytecodeP2SH32</item>
|
||||
<item>LockingBytecodeNullData</item>
|
||||
</list>
|
||||
<list name="keywords">
|
||||
<item>true</item>
|
||||
<item>false</item>
|
||||
<item>new</item>
|
||||
</list>
|
||||
<list name="controlstructures">
|
||||
<item>if</item>
|
||||
<item>else</item>
|
||||
<item>contract</item>
|
||||
<item>function</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<StringDetect attribute="Keyword" String="pragma" context="Pragma" firstNonSpace="true" insensitive="true"/>
|
||||
<keyword attribute="Control Structures" context="#stay" String="controlstructures"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
<keyword attribute="Unit" context="#stay" String="units"/>
|
||||
<keyword attribute="Built-in" context="#stay" String="globals"/>
|
||||
<DetectIdentifier/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<Float attribute="Decimal" context="#stay"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<HlCChar attribute="Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<Detect2Chars attribute="Built-in" context="#stay" char="+" char1="+"/>
|
||||
<Detect2Chars attribute="Built-in" context="#stay" char="-" char1="-"/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true"/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>?[]|~^;"/>
|
||||
</context>
|
||||
<context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<IncludeRules context="##Doxygen"/>
|
||||
<Detect2Chars attribute="Comment" context="#pop!Comment Single" char="/" char1="/"/>
|
||||
<Detect2Chars attribute="Comment" context="#pop!Comment Multi" char="/" char1="*" beginRegion="Comment"/>
|
||||
</context>
|
||||
<context name="Pragma" attribute="Normal Text" lineEndContext="#pop">
|
||||
<WordDetect attribute="Built-in" String="cashscript" context="Pragma CashScript" insensitive="true"/>
|
||||
<RegExpr attribute="Error" context="#pop" String="[^\s;]+"/>
|
||||
</context>
|
||||
<context name="Pragma CashScript" attribute="Normal Text" lineEndContext="#pop">
|
||||
<RegExpr attribute="Normal Text" context="#pop" String="[\^\. \-<>=\|\d\w]+"/>
|
||||
<RegExpr attribute="Error" context="#pop" String="[^\s;]+"/>
|
||||
</context>
|
||||
<context name="String" attribute="String" lineEndContext="#pop">
|
||||
<LineContinue attribute="String" context="#stay"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context name="Comment Single" attribute="Comment" lineEndContext="#pop">
|
||||
<LineContinue attribute="Comment" context="#stay"/>
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
<context name="Comment Multi" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Control Structures" defStyleNum="dsControlFlow" spellChecking="false"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/>
|
||||
<itemData name="Built-in" defStyleNum="dsBuiltIn" spellChecking="false"/>
|
||||
<itemData name="Unit" defStyleNum="dsConstant" bold="0" spellChecking="false"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//"/>
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1"/>
|
||||
</general>
|
||||
</language>
|
||||
@@ -0,0 +1,654 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!-- http://www.w3.org/TR/CSS21/syndata.html#tokenization -->
|
||||
<!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
|
||||
<!ENTITY nmchar "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
|
||||
]>
|
||||
|
||||
<language name="CleanCSS" version="8" kateversion="5.0" section="Markup" extensions="*.ccss" author="Massimiliano Torromeo" license="BSD">
|
||||
|
||||
<highlighting>
|
||||
<list name="properties">
|
||||
<!-- CSS2 -->
|
||||
<item>azimuth</item>
|
||||
<item>background</item>
|
||||
<item>background-attachment</item>
|
||||
<item>background-color</item>
|
||||
<item>background-image</item>
|
||||
<item>background-position</item>
|
||||
<item>background-repeat</item>
|
||||
<item>border</item>
|
||||
<item>border-bottom</item>
|
||||
<item>border-bottom-color</item>
|
||||
<item>border-bottom-style</item>
|
||||
<item>border-bottom-width</item>
|
||||
<item>border-collapse</item>
|
||||
<item>border-color</item>
|
||||
<item>border-left</item>
|
||||
<item>border-left-color</item>
|
||||
<item>border-left-style</item>
|
||||
<item>border-left-width</item>
|
||||
<item>border-right</item>
|
||||
<item>border-right-color</item>
|
||||
<item>border-right-style</item>
|
||||
<item>border-right-width</item>
|
||||
<item>border-spacing</item>
|
||||
<item>border-style</item>
|
||||
<item>border-top</item>
|
||||
<item>border-top-color</item>
|
||||
<item>border-top-style</item>
|
||||
<item>border-top-width</item>
|
||||
<item>border-width</item>
|
||||
<item>bottom</item>
|
||||
<item>caption-side</item>
|
||||
<item>clear</item>
|
||||
<item>clip</item>
|
||||
<item>color</item>
|
||||
<item>content</item>
|
||||
<item>counter-increment</item>
|
||||
<item>counter-reset</item>
|
||||
<item>cue</item>
|
||||
<item>cue-after</item>
|
||||
<item>cue-before</item>
|
||||
<item>cursor</item>
|
||||
<item>direction</item>
|
||||
<item>display</item>
|
||||
<item>elevation</item>
|
||||
<item>empty-cells</item>
|
||||
<item>float</item>
|
||||
<item>font</item>
|
||||
<item>font-family</item>
|
||||
<item>font-size</item>
|
||||
<item>font-size-adjust</item>
|
||||
<item>font-stretch</item>
|
||||
<item>font-style</item>
|
||||
<item>font-variant</item>
|
||||
<item>font-weight</item>
|
||||
<item>height</item>
|
||||
<item>left</item>
|
||||
<item>letter-spacing</item>
|
||||
<item>line-height</item>
|
||||
<item>list-style</item>
|
||||
<item>list-style-image</item>
|
||||
<item>list-style-keyword</item>
|
||||
<item>list-style-position</item>
|
||||
<item>list-style-type</item>
|
||||
<item>margin</item>
|
||||
<item>margin-bottom</item>
|
||||
<item>margin-left</item>
|
||||
<item>margin-right</item>
|
||||
<item>margin-top</item>
|
||||
<item>marker-offset</item>
|
||||
<item>max-height</item>
|
||||
<item>max-width</item>
|
||||
<item>min-height</item>
|
||||
<item>min-width</item>
|
||||
<item>orphans</item>
|
||||
<item>outline</item>
|
||||
<item>outline-color</item>
|
||||
<item>outline-style</item>
|
||||
<item>outline-width</item>
|
||||
<item>overflow</item>
|
||||
<item>padding</item>
|
||||
<item>padding-bottom</item>
|
||||
<item>padding-left</item>
|
||||
<item>padding-right</item>
|
||||
<item>padding-top</item>
|
||||
<item>page</item>
|
||||
<item>page-break-after</item>
|
||||
<item>page-break-before</item>
|
||||
<item>page-break-inside</item>
|
||||
<item>pause</item>
|
||||
<item>pause-after</item>
|
||||
<item>pause-before</item>
|
||||
<item>pitch</item>
|
||||
<item>pitch-range</item>
|
||||
<item>play-during</item>
|
||||
<item>position</item>
|
||||
<item>quotes</item>
|
||||
<item>richness</item>
|
||||
<item>right</item>
|
||||
<item>size</item>
|
||||
<item>speak</item>
|
||||
<item>speak-header</item>
|
||||
<item>speak-numeral</item>
|
||||
<item>speak-punctuation</item>
|
||||
<item>speech-rate</item>
|
||||
<item>stress</item>
|
||||
<item>table-layout</item>
|
||||
<item>text-align</item>
|
||||
<item>text-decoration</item>
|
||||
<item>text-decoration-color</item>
|
||||
<item>text-indent</item>
|
||||
<item>text-shadow</item>
|
||||
<item>text-transform</item>
|
||||
<item>top</item>
|
||||
<item>unicode-bidi</item>
|
||||
<item>vertical-align</item>
|
||||
<item>visibility</item>
|
||||
<item>voice-family</item>
|
||||
<item>volume</item>
|
||||
<item>white-space</item>
|
||||
<item>widows</item>
|
||||
<item>width</item>
|
||||
<item>word-spacing</item>
|
||||
<item>z-index</item>
|
||||
|
||||
<!-- CSS3 -->
|
||||
<item>border-bottom-image</item>
|
||||
<item>border-bottom-left-image</item>
|
||||
<item>border-bottom-left-radius</item>
|
||||
<item>border-bottom-right-image</item>
|
||||
<item>border-bottom-right-radius</item>
|
||||
<item>border-corner-image</item>
|
||||
<item>border-image</item>
|
||||
<item>border-left-image</item>
|
||||
<item>border-radius</item>
|
||||
<item>border-right-image</item>
|
||||
<item>border-top-image</item>
|
||||
<item>border-top-left-image</item>
|
||||
<item>border-top-left-radius</item>
|
||||
<item>border-top-right-image</item>
|
||||
<item>border-top-right-radius</item>
|
||||
<item>box-align</item>
|
||||
<item>box-shadow</item>
|
||||
<item>box-sizing</item>
|
||||
<item>box-orient</item>
|
||||
<item>box-pack</item>
|
||||
<item>opacity</item>
|
||||
<item>outline-offset</item>
|
||||
<item>overflow-x</item>
|
||||
<item>overflow-y</item>
|
||||
<item>text-overflow</item>
|
||||
<item>text-shadow</item>
|
||||
|
||||
<!-- Gecko rendering engine CSS property extensions -->
|
||||
<item>-moz-border-bottom-colors</item>
|
||||
<item>-moz-border-left-colors</item>
|
||||
<item>-moz-border-radius</item>
|
||||
<item>-moz-border-right-colors</item>
|
||||
<item>-moz-border-top-colors</item>
|
||||
<item>-moz-box-flex</item>
|
||||
|
||||
<!-- Opera rendering engine CSS property extensions -->
|
||||
<item>-o-background-size</item>
|
||||
<item>-o-text-overflow</item>
|
||||
|
||||
<!-- konq specific -->
|
||||
<item>-khtml-background-size</item>
|
||||
<item>konq_bgpos_x</item>
|
||||
<item>konq_bgpos_y</item>
|
||||
|
||||
<!-- Webkit rendering engine CSS property extensions -->
|
||||
<item>-webkit-background-size</item>
|
||||
<item>-webkit-border-radius</item>
|
||||
|
||||
<!-- MS rendering engine CSS properties -->
|
||||
<item>filter</item>
|
||||
<item>-ms-filter</item>
|
||||
|
||||
<!-- font properties in @font-face -->
|
||||
<item>font-family</item>
|
||||
<item>font-size</item>
|
||||
<item>font-stretch</item>
|
||||
<item>font-style</item>
|
||||
<item>font-variant</item>
|
||||
<item>font-weight</item>
|
||||
<item>unicode-range</item>
|
||||
<item>units-per-em</item>
|
||||
<item>src</item>
|
||||
<item>panose-1</item>
|
||||
<item>stemv</item>
|
||||
<item>stemh</item>
|
||||
<item>slope</item>
|
||||
<item>cap-height</item>
|
||||
<item>x-height</item>
|
||||
<item>ascent</item>
|
||||
<item>descent</item>
|
||||
<item>widths</item>
|
||||
<item>bbox</item>
|
||||
<item>definition-src</item>
|
||||
<item>baseline</item>
|
||||
<item>centerline</item>
|
||||
<item>mathline</item>
|
||||
<item>topline</item>
|
||||
</list>
|
||||
|
||||
<list name="types">
|
||||
<item>inherit</item>
|
||||
<item>none</item>
|
||||
<item>hidden</item>
|
||||
<item>dotted</item>
|
||||
<item>dashed</item>
|
||||
<item>solid</item>
|
||||
<item>double</item>
|
||||
<item>groove</item>
|
||||
<item>ridge</item>
|
||||
<item>inset</item>
|
||||
<item>outset</item>
|
||||
<item>xx-small</item>
|
||||
<item>x-small</item>
|
||||
<item>small</item>
|
||||
<item>medium</item>
|
||||
<item>large</item>
|
||||
<item>x-large</item>
|
||||
<item>xx-large</item>
|
||||
<item>smaller</item>
|
||||
<item>larger</item>
|
||||
<item>italic</item>
|
||||
<item>oblique</item>
|
||||
<item>small-caps</item>
|
||||
<item>normal</item>
|
||||
<item>bold</item>
|
||||
<item>bolder</item>
|
||||
<item>lighter</item>
|
||||
<item>light</item>
|
||||
<item>100</item>
|
||||
<item>200</item>
|
||||
<item>300</item>
|
||||
<item>400</item>
|
||||
<item>500</item>
|
||||
<item>600</item>
|
||||
<item>700</item>
|
||||
<item>800</item>
|
||||
<item>900</item>
|
||||
<item>transparent</item>
|
||||
<item>repeat</item>
|
||||
<item>repeat-x</item>
|
||||
<item>repeat-y</item>
|
||||
<item>no-repeat</item>
|
||||
<item>baseline</item>
|
||||
<item>sub</item>
|
||||
<item>super</item>
|
||||
<item>top</item>
|
||||
<item>text-top</item>
|
||||
<item>middle</item>
|
||||
<item>bottom</item>
|
||||
<item>text-bottom</item>
|
||||
<item>left</item>
|
||||
<item>right</item>
|
||||
<item>center</item>
|
||||
<item>justify</item>
|
||||
<item>konq-center</item>
|
||||
<item>disc</item>
|
||||
<item>circle</item>
|
||||
<item>square</item>
|
||||
<item>box</item>
|
||||
<item>decimal</item>
|
||||
<item>decimal-leading-zero</item>
|
||||
<item>lower-roman</item>
|
||||
<item>upper-roman</item>
|
||||
<item>lower-greek</item>
|
||||
<item>lower-alpha</item>
|
||||
<item>lower-latin</item>
|
||||
<item>upper-alpha</item>
|
||||
<item>upper-latin</item>
|
||||
<item>hebrew</item>
|
||||
<item>armenian</item>
|
||||
<item>georgian</item>
|
||||
<item>cjk-ideographic</item>
|
||||
<item>hiragana</item>
|
||||
<item>katakana</item>
|
||||
<item>hiragana-iroha</item>
|
||||
<item>katakana-iroha</item>
|
||||
<item>inline</item>
|
||||
<item>inline-block</item>
|
||||
<item>block</item>
|
||||
<item>list-item</item>
|
||||
<item>run-in</item>
|
||||
<item>compact</item>
|
||||
<item>marker</item>
|
||||
<item>table</item>
|
||||
<item>inline-table</item>
|
||||
<item>table-row-group</item>
|
||||
<item>table-header-group</item>
|
||||
<item>table-footer-group</item>
|
||||
<item>table-row</item>
|
||||
<item>table-column-group</item>
|
||||
<item>table-column</item>
|
||||
<item>table-cell</item>
|
||||
<item>table-caption</item>
|
||||
<item>auto</item>
|
||||
<item>crosshair</item>
|
||||
<item>default</item>
|
||||
<item>pointer</item>
|
||||
<item>move</item>
|
||||
<item>e-resize</item>
|
||||
<item>ne-resize</item>
|
||||
<item>nw-resize</item>
|
||||
<item>n-resize</item>
|
||||
<item>se-resize</item>
|
||||
<item>sw-resize</item>
|
||||
<item>s-resize</item>
|
||||
<item>w-resize</item>
|
||||
<item>text</item>
|
||||
<item>wait</item>
|
||||
<item>help</item>
|
||||
<item>above</item>
|
||||
<item>absolute</item>
|
||||
<item>always</item>
|
||||
<item>avoid</item>
|
||||
<item>below</item>
|
||||
<item>bidi-override</item>
|
||||
<item>blink</item>
|
||||
<item>both</item>
|
||||
<item>capitalize</item>
|
||||
<item>caption</item>
|
||||
<item>clip</item>
|
||||
<item>close-quote</item>
|
||||
<item>collapse</item>
|
||||
<item>condensed</item>
|
||||
<item>crop</item>
|
||||
<item>cross</item>
|
||||
<item>ellipsis</item>
|
||||
<item>ellipsis-word</item>
|
||||
<item>embed</item>
|
||||
<item>expanded</item>
|
||||
<item>extra-condensed</item>
|
||||
<item>extra-expanded</item>
|
||||
<item>fixed</item>
|
||||
<item>hand</item>
|
||||
<item>hide</item>
|
||||
<item>higher</item>
|
||||
<item>icon</item>
|
||||
<item>inside</item>
|
||||
<item>invert</item>
|
||||
<item>landscape</item>
|
||||
<item>level</item>
|
||||
<item>line-through</item>
|
||||
<item>loud</item>
|
||||
<item>lower</item>
|
||||
<item>lowercase</item>
|
||||
<item>ltr</item>
|
||||
<item>menu</item>
|
||||
<item>message-box</item>
|
||||
<item>mix</item>
|
||||
<item>narrower</item>
|
||||
<item>no-close-quote</item>
|
||||
<item>no-open-quote</item>
|
||||
<item>nowrap</item>
|
||||
<item>open-quote</item>
|
||||
<item>outside</item>
|
||||
<item>overline</item>
|
||||
<item>portrait</item>
|
||||
<item>pre</item>
|
||||
<item>pre-line</item>
|
||||
<item>pre-wrap</item>
|
||||
<item>relative</item>
|
||||
<item>rtl</item>
|
||||
<item>scroll</item>
|
||||
<item>semi-condensed</item>
|
||||
<item>semi-expanded</item>
|
||||
<item>separate</item>
|
||||
<item>show</item>
|
||||
<item>small-caption</item>
|
||||
<item>static</item>
|
||||
<item>static-position</item>
|
||||
<item>status-bar</item>
|
||||
<item>thick</item>
|
||||
<item>thin</item>
|
||||
<item>ultra-condensed</item>
|
||||
<item>ultra-expanded</item>
|
||||
<item>underline</item>
|
||||
<item>uppercase</item>
|
||||
<item>visible</item>
|
||||
<item>wider</item>
|
||||
<item>break</item>
|
||||
<item>serif</item>
|
||||
<item>sans-serif</item>
|
||||
<item>cursive</item>
|
||||
<item>fantasy</item>
|
||||
<item>monospace</item>
|
||||
<item>border-box</item>
|
||||
<item>content-box</item>
|
||||
<item>horizontal</item>
|
||||
|
||||
<!-- Gecko rendering engine CSS value extensions -->
|
||||
<item>-moz-box</item>
|
||||
|
||||
<!-- Webkit rendering engine CSS value extensions -->
|
||||
<item>linear</item>
|
||||
<item>radial</item>
|
||||
|
||||
</list>
|
||||
|
||||
|
||||
<list name="colors">
|
||||
<item>aqua</item>
|
||||
<item>black</item>
|
||||
<item>blue</item>
|
||||
<item>fuchsia</item>
|
||||
<item>gray</item>
|
||||
<item>green</item>
|
||||
<item>lime</item>
|
||||
<item>maroon</item>
|
||||
<item>navy</item>
|
||||
<item>olive</item>
|
||||
<item>purple</item>
|
||||
<item>red</item>
|
||||
<item>silver</item>
|
||||
<item>teal</item>
|
||||
<item>white</item>
|
||||
<item>yellow</item>
|
||||
<item>ActiveBorder</item>
|
||||
<item>ActiveCaption</item>
|
||||
<item>AppWorkspace</item>
|
||||
<item>Background</item>
|
||||
<item>ButtonFace</item>
|
||||
<item>ButtonHighlight</item>
|
||||
<item>ButtonShadow</item>
|
||||
<item>ButtonText</item>
|
||||
<item>CaptionText</item>
|
||||
<item>GrayText</item>
|
||||
<item>Highlight</item>
|
||||
<item>HighlightText</item>
|
||||
<item>InactiveBorder</item>
|
||||
<item>InactiveCaption</item>
|
||||
<item>InactiveCaptionText</item>
|
||||
<item>InfoBackground</item>
|
||||
<item>InfoText</item>
|
||||
<item>Menu</item>
|
||||
<item>MenuText</item>
|
||||
<item>Scrollbar</item>
|
||||
<item>ThreeDDarkShadow</item>
|
||||
<item>ThreeDFace</item>
|
||||
<item>ThreeDHighlight</item>
|
||||
<item>ThreeDLightShadow</item>
|
||||
<item>ThreeDShadow</item>
|
||||
<item>Window</item>
|
||||
<item>WindowFrame</item>
|
||||
<item>WindowText</item>
|
||||
</list>
|
||||
|
||||
<list name="paren">
|
||||
<item>url</item>
|
||||
<item>attr</item>
|
||||
<item>rect</item>
|
||||
<item>rgb</item>
|
||||
<item>rgba</item>
|
||||
<item>hsl</item>
|
||||
<item>hsla</item>
|
||||
<item>counter</item>
|
||||
<item>counters</item>
|
||||
|
||||
<!-- in @font-face -->
|
||||
<item>local</item>
|
||||
<item>format</item>
|
||||
|
||||
<!-- Webkit rendering engine CSS value extensions -->
|
||||
<item>-webkit-gradient</item>
|
||||
<item>color-stop</item>
|
||||
|
||||
<!-- Gecko rendering engine CSS value extensions -->
|
||||
<item>-moz-linear-gradient</item>
|
||||
<item>-moz-radial-gradient</item>
|
||||
|
||||
<!-- Trident (a.k.a., MSHTML) rendering engine functional notation extensions -->
|
||||
<item>expression</item>
|
||||
<item>progid:DXImageTransform.Microsoft.gradient</item>
|
||||
|
||||
</list>
|
||||
|
||||
<list name="mediatypes">
|
||||
<item>all</item>
|
||||
<item>aural</item>
|
||||
<item>braille</item>
|
||||
<item>embossed</item>
|
||||
<item>handheld</item>
|
||||
<item>print</item>
|
||||
<item>projection</item>
|
||||
<item>screen</item>
|
||||
<item>tty</item>
|
||||
<item>tv</item>
|
||||
</list>
|
||||
|
||||
<list name="pseudoclasses">
|
||||
<item>hover</item>
|
||||
<item>link</item>
|
||||
<item>visited</item>
|
||||
<item>active</item>
|
||||
<item>focus</item>
|
||||
<item>first-child</item>
|
||||
<item>last-child</item>
|
||||
<item>only-child</item>
|
||||
<item>first-of-type</item>
|
||||
<item>last-of-type</item>
|
||||
<item>only-of-type</item>
|
||||
<item>first-letter</item>
|
||||
<item>first-line</item>
|
||||
<item>before</item>
|
||||
<item>after</item>
|
||||
<item>selection</item>
|
||||
<item>root</item>
|
||||
<item>empty</item>
|
||||
<item>target</item>
|
||||
<item>enabled</item>
|
||||
<item>disabled</item>
|
||||
<item>checked</item>
|
||||
<item>indeterminate</item>
|
||||
<item>nth-child</item>
|
||||
<item>nth-last-child</item>
|
||||
<item>nth-of-type</item>
|
||||
<item>nth-last-of-type</item>
|
||||
<item>not</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" char="/" char1="/" context="Comment" />
|
||||
<RegExpr attribute="Normal Text" String=".*\S.*:\s*$" context="Selector" lookAhead="true" />
|
||||
<RegExpr attribute="Normal Text" String=".*\S.*:.*\S" context="RuleSet" lookAhead="true" minimal="true" />
|
||||
<RegExpr attribute="Property" String="[a-z\-]+->\s*$" context="#stay" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
<!--<keyword attribute="Property" context="Rule" String="properties" />
|
||||
<keyword attribute="Property" context="Rule" String="properties" />-->
|
||||
<!--<keyword attribute="Value" context="#stay" String="types" />
|
||||
<keyword attribute="Value" context="#stay" String="colors" />-->
|
||||
<!--<keyword attribute="Value" context="PropParen" String="paren" />-->
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="Selector" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Selector Attr" context="SelAttr" char="[" />
|
||||
<RegExpr attribute="Selector Id" context="#stay" String="#(-)?(&nmstart;)(&nmchar;)*" />
|
||||
<RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
|
||||
<DetectChar attribute="Selector Pseudo" context="SelPseudo" char=":" />
|
||||
<keyword attribute="Media" context="#stay" String="mediatypes" />
|
||||
</context>
|
||||
|
||||
<context name="SelAttr" attribute="Selector Attr" lineEndContext="#pop">
|
||||
<DetectChar attribute="Selector Attr" context="#pop" char="]" />
|
||||
<IncludeRules context="FindStrings" />
|
||||
</context>
|
||||
|
||||
<context name="SelPseudo" attribute="Selector Pseudo" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses" />
|
||||
</context>
|
||||
|
||||
<context name="RuleSet" attribute="Normal Text" lineEndContext="#pop">
|
||||
<keyword attribute="Property" context="Rule" String="properties" />
|
||||
<RegExpr attribute="Unknown Property" context="Rule" String="-?[A-Za-z_-]+(?=\s*:)" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="Rule" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Property" context="Rule2" char=":" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="Rule2" attribute="Normal Text" lineEndContext="#pop">
|
||||
<keyword attribute="Value" context="#stay" String="types" />
|
||||
<keyword attribute="Value" context="#stay" String="colors" />
|
||||
<RegExpr attribute="Value" context="#stay" String="#([0-9A-Fa-f]{3}){1,4}\b" />
|
||||
<keyword attribute="Value" context="PropParen" String="paren" />
|
||||
<RegExpr attribute="Important" context="#stay" String="!important\b" />
|
||||
<IncludeRules context="FindValues" />
|
||||
<IncludeRules context="FindStrings" />
|
||||
</context>
|
||||
|
||||
<context name="PropParen" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Value" context="PropParen2" char="(" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="PropParen2" attribute="Normal Text" lineEndContext="#pop">
|
||||
<IncludeRules context="Rule2" />
|
||||
<DetectChar attribute="Value" context="#pop#pop" char=")" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindValues">
|
||||
<RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+((em|ex|px|in|cm|mm|pt|pc|deg|rad|grad|ms|s|Hz|kHz)\b|%?)" />
|
||||
<RegExpr attribute="Normal Text" context="#stay" String="[\w\-]+" />
|
||||
</context>
|
||||
|
||||
<context name="FindStrings" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="StringDQ" char=""" />
|
||||
<DetectChar attribute="String" context="StringSQ" char="'" />
|
||||
</context>
|
||||
|
||||
<!-- string contexts -->
|
||||
<context name="StringDQ" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
<IncludeRules context="InsideString" />
|
||||
</context>
|
||||
|
||||
<context name="StringSQ" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="'" />
|
||||
<IncludeRules context="InsideString" />
|
||||
</context>
|
||||
|
||||
<context name="InsideString" attribute="String" lineEndContext="#pop">
|
||||
<RegExpr attribute="String" context="#stay" String="\\["']" />
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Unknown Property" defStyleNum="dsKeyword" italic="1" spellChecking="false"/>
|
||||
<itemData name="Media" defStyleNum="dsDecVal" bold="1" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Value" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Important" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Selector Attr" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Selector Id" defStyleNum="dsFloat" bold="1" spellChecking="false"/>
|
||||
<itemData name="Selector Class" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="Selector Pseudo" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<folding indentationsensitive="1" />
|
||||
<keywords casesensitive="0" weakDeliminator="-%"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" position="afterwhitespace"/>
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,269 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
|
||||
<!--
|
||||
** Cg Syntax Rules **
|
||||
|
||||
NOTES:
|
||||
- some stuff stolen from c.xml
|
||||
|
||||
TODO:
|
||||
- some exotic keywords are missing, find out which; the spec is a bloody mess
|
||||
|
||||
2004-05-25
|
||||
* Initial release
|
||||
2004-05-27
|
||||
* Added swizzle highlighting
|
||||
* Added stdlib function highlighting
|
||||
2004-12-07 (julien.antille at kdemail.net)
|
||||
* Added COLOR1 through COLOR3 output sementics, for Multiple Render Targets (MRTs).
|
||||
* Added FACE sementic for the new fp40 profile
|
||||
-->
|
||||
|
||||
<language name="Cg" section="Sources" extensions="*.cg;*.cgfx" mimetype="text/x-cgsrc" version="10" kateversion="5.0" author="Florian Schanda (florian.schanda@schanda.de)" license="LGPL">
|
||||
<highlighting>
|
||||
<list name="binding">
|
||||
<item>POSITION</item>
|
||||
<item>COLOR</item>
|
||||
<item>COLOR0</item>
|
||||
<item>COLOR1</item>
|
||||
<item>COLOR2</item>
|
||||
<item>COLOR3</item>
|
||||
<item>TEXCOORD0</item>
|
||||
<item>TEXCOORD1</item>
|
||||
<item>TEXCOORD2</item>
|
||||
<item>TEXCOORD3</item>
|
||||
<item>TEXCOORD4</item>
|
||||
<item>TEXCOORD5</item>
|
||||
<item>TEXCOORD6</item>
|
||||
<item>TEXCOORD7</item>
|
||||
<item>TEXCOORD8</item>
|
||||
<item>TEXCOORD9</item>
|
||||
<item>TEXCOORD10</item>
|
||||
<item>TEXCOORD11</item>
|
||||
<item>TEXCOORD12</item>
|
||||
<item>TEXCOORD13</item>
|
||||
<item>TEXCOORD14</item>
|
||||
<item>TEXCOORD15</item>
|
||||
<item>TEXUNIT0</item>
|
||||
<item>TEXUNIT1</item>
|
||||
<item>TEXUNIT2</item>
|
||||
<item>TEXUNIT3</item>
|
||||
<item>TEXUNIT4</item>
|
||||
<item>TEXUNIT5</item>
|
||||
<item>TEXUNIT6</item>
|
||||
<item>TEXUNIT7</item>
|
||||
<item>TEXUNIT8</item>
|
||||
<item>TEXUNIT9</item>
|
||||
<item>TEXUNIT10</item>
|
||||
<item>TEXUNIT11</item>
|
||||
<item>TEXUNIT12</item>
|
||||
<item>TEXUNIT13</item>
|
||||
<item>TEXUNIT14</item>
|
||||
<item>TEXUNIT15</item>
|
||||
<item>WPOS</item>
|
||||
<item>DEPTH</item>
|
||||
<item>BLENDWEIGHT</item>
|
||||
<item>NORMAL</item>
|
||||
<item>TESSFACTOR</item>
|
||||
<item>FOGCOORD</item>
|
||||
<item>PSIZE</item>
|
||||
<item>BLENDINDICES</item>
|
||||
<item>TANGENT</item>
|
||||
<item>BINORMAL</item>
|
||||
<item>FOG</item>
|
||||
<item>BCOL0</item>
|
||||
<item>BCOL1</item>
|
||||
<item>FACE</item>
|
||||
</list>
|
||||
<list name="keywords">
|
||||
<item>do</item>
|
||||
<item>while</item>
|
||||
<item>if</item>
|
||||
<item>else</item>
|
||||
<item>for</item>
|
||||
<item>struct</item>
|
||||
<item>return</item>
|
||||
<item>static</item>
|
||||
<item>typedef</item>
|
||||
<item>discard</item>
|
||||
<item>true</item>
|
||||
<item>false</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>bool</item>
|
||||
<item>int</item>
|
||||
<item>fixed</item>
|
||||
<item>half</item>
|
||||
<item>float</item>
|
||||
|
||||
<item>void</item>
|
||||
<item>sampler</item>
|
||||
<item>sampler1D</item>
|
||||
<item>sampler2D</item>
|
||||
<item>sampler3D</item>
|
||||
<item>samplerCUBE</item>
|
||||
<item>samplerRECT</item>
|
||||
|
||||
<item>packed</item>
|
||||
<item>const</item>
|
||||
<item>uniform</item>
|
||||
<item>in</item>
|
||||
<item>out</item>
|
||||
<item>inout</item>
|
||||
</list>
|
||||
<list name="attention">
|
||||
<item>FIXME</item>
|
||||
<item>TODO</item>
|
||||
<item>BUG</item>
|
||||
</list>
|
||||
<list name="stdlib">
|
||||
<item>abs</item>
|
||||
<item>acos</item>
|
||||
<item>all</item>
|
||||
<item>any</item>
|
||||
<item>asin</item>
|
||||
<item>atan</item>
|
||||
<item>atan2</item>
|
||||
<item>ceil</item>
|
||||
<item>clamp</item>
|
||||
<item>cos</item>
|
||||
<item>cosh</item>
|
||||
<item>cross</item>
|
||||
<item>degrees</item> <!-- the spec got this wrong... -->
|
||||
<item>determinant</item>
|
||||
<item>dot</item>
|
||||
<item>exp</item>
|
||||
<item>exp2</item>
|
||||
<item>floor</item>
|
||||
<item>fmod</item>
|
||||
<item>frac</item>
|
||||
<item>frexp</item>
|
||||
<item>isfinite</item>
|
||||
<item>isinf</item>
|
||||
<item>isnan</item>
|
||||
<item>ldexp</item>
|
||||
<item>lerp</item>
|
||||
<item>lit</item>
|
||||
<item>log</item>
|
||||
<item>log2</item>
|
||||
<item>log10</item>
|
||||
<item>max</item>
|
||||
<item>min</item>
|
||||
<item>modf</item>
|
||||
<item>mul</item>
|
||||
<item>noise</item>
|
||||
<item>pow</item>
|
||||
<item>radians</item>
|
||||
<item>round</item>
|
||||
<item>rsqrt</item>
|
||||
<item>saturate</item>
|
||||
<item>sign</item>
|
||||
<item>sin</item>
|
||||
<item>sincos</item>
|
||||
<item>sinh</item>
|
||||
<item>smoothstep</item>
|
||||
<item>step</item>
|
||||
<item>sqrt</item>
|
||||
<item>tan</item>
|
||||
<item>tanh</item>
|
||||
<item>transpose</item>
|
||||
<item>distance</item>
|
||||
<item>faceforward</item>
|
||||
<item>length</item>
|
||||
<item>normalize</item>
|
||||
<item>reflect</item>
|
||||
<item>refract</item>
|
||||
<item>tex1D</item>
|
||||
<item>tex1Dproj</item>
|
||||
<item>tex2D</item>
|
||||
<item>tex2Dproj</item>
|
||||
<item>texRECT</item>
|
||||
<item>texRECTproj</item>
|
||||
<item>tex3D</item>
|
||||
<item>tex3Dproj</item>
|
||||
<item>texCUBE</item>
|
||||
<item>texCUBEproj</item>
|
||||
<item>ddx</item>
|
||||
<item>ddy</item>
|
||||
<item>debug</item>
|
||||
<item>pack_2half</item>
|
||||
<item>unpack_2half</item>
|
||||
<item>pack_2ushort</item>
|
||||
<item>unpack_2ushort</item>
|
||||
<item>pack_4byte</item>
|
||||
<item>unpack_4byte</item>
|
||||
<item>pack_4ubyte</item>
|
||||
<item>unpack_4ubyte</item>
|
||||
</list>
|
||||
<list name="stdstruct">
|
||||
<item>fragout</item>
|
||||
<item>fragout_float</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<keyword String="keywords" attribute="Keyword" context="#stay" />
|
||||
<keyword String="binding" attribute="Binding" context="#stay" />
|
||||
<keyword String="attention" attribute="Alert" context="#stay" />
|
||||
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
|
||||
|
||||
<RegExpr String="(float|half|fixed|bool|int)[1234](x[1234])?" attribute="Data Type" context="#stay" />
|
||||
<keyword String="types" attribute="Data Type" context="#stay" />
|
||||
<keyword String="stdstruct" attribute="Data Type" context="#stay" />
|
||||
|
||||
<RegExpr String="[0123456789]*+[.][0123456789]++h" attribute="Half" context="#stay" />
|
||||
<RegExpr String="[0123456789]*+[.][0123456789]++x" attribute="Fixed" context="#stay" />
|
||||
<RegExpr String="[0123456789]*+[.][0123456789]++f?" attribute="Float" context="#stay" />
|
||||
<Int attribute="Decimal" context="#stay" />
|
||||
|
||||
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
|
||||
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
|
||||
|
||||
<keyword String="stdlib" attribute="StdFunction" context="#stay" />
|
||||
|
||||
<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />
|
||||
|
||||
<RegExpr attribute="Swizzle" context="#stay" String="[.][rgbaxyzw]+(?=[\s/*-+<>])" />
|
||||
|
||||
<DetectChar attribute="Symbol" context="Member" char="." />
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/*<=>?[]|~^;"/>
|
||||
</context>
|
||||
<context name="Member" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Function" context="#pop" String="\b[_\w][_\w\d]*(?=[\s]*)" />
|
||||
</context>
|
||||
<context name="Commentar 1" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context name="Commentar 2" attribute="Comment" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Binding" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction" bold="0"/>
|
||||
<itemData name="StdFunction" defStyleNum="dsBuiltIn" bold="1"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Half" defStyleNum="dsFloat"/>
|
||||
<itemData name="Fixed" defStyleNum="dsFloat"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Swizzle" defStyleNum="dsNormal" bold="1"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Alert" defStyleNum="dsAlert" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" />
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="CGiS" version="9" kateversion="5.0" section="Sources" extensions="*.cgis" mimetype="">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>1D</item>
|
||||
<item>2D</item>
|
||||
<item>break</item>
|
||||
<item>continue</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>extern</item>
|
||||
<item>for</item>
|
||||
<item>forall</item>
|
||||
<item>foreach</item>
|
||||
<item>function</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>inout</item>
|
||||
<item>internal</item>
|
||||
<item>out</item>
|
||||
<item>reduction</item>
|
||||
<item>return</item>
|
||||
<item>struct</item>
|
||||
<item>typedef</item>
|
||||
<item>while</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>bool</item>
|
||||
<item>bool2</item>
|
||||
<item>bool3</item>
|
||||
<item>bool4</item>
|
||||
<item>int</item>
|
||||
<item>int2</item>
|
||||
<item>int3</item>
|
||||
<item>int4</item>
|
||||
<item>half</item>
|
||||
<item>half2</item>
|
||||
<item>half3</item>
|
||||
<item>half4</item>
|
||||
<item>float</item>
|
||||
<item>float2</item>
|
||||
<item>float3</item>
|
||||
<item>float4</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Keyword" context="#stay" String="PROGRAM" />
|
||||
<StringDetect attribute="Keyword" context="Interface" String="INTERFACE" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Interface">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Keyword" context="Control" String="CONTROL" />
|
||||
<StringDetect attribute="Keyword" context="Code" String="CODE" />
|
||||
|
||||
<IncludeRules context="Common" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Code">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Keyword" context="Control" String="CONTROL" />
|
||||
|
||||
<StringDetect attribute="Hint" context="Hint" String="#HINT" />
|
||||
|
||||
<IncludeRules context="Common" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Control">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Keyword" context="Code" String="CODE" />
|
||||
|
||||
<IncludeRules context="Common" />
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Common">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
<DetectIdentifier />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
|
||||
<Float attribute="Float" context="Float Suffixes"/>
|
||||
<HlCOct attribute="Octal" context="#stay"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
|
||||
</context>
|
||||
|
||||
<context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
|
||||
<StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
|
||||
<IncludeRules context="##Doxygen" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment" />
|
||||
</context>
|
||||
|
||||
<context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<AnyChar String="fF" attribute="Float" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Hint" lineEndContext="#stay" name="Hint">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Hint" context="#pop" char=")" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context attribute="Region Marker" lineEndContext="#pop" name="Region Marker" />
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker" />
|
||||
<itemData name="Hint" defStyleNum="dsOthers"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" />
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="ChangeLog" version="4" kateversion="2.4" section="Other" extensions="ChangeLog" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
|
||||
<highlighting>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<DetectChar attribute="Entry" context="entry" char="*" firstNonSpace="true" />
|
||||
<RegExpr attribute="Date" context="line" String="^\d\d\d\d\s*-\s*\d\d\s*-\s*\d\d\s*" column="0"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="line">
|
||||
<RegExpr attribute="Name" context="#stay" String="(\w\s*)+"/>
|
||||
<RegExpr attribute="E-Mail" context="#pop" String="<.*>\s*$"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="entry">
|
||||
<RegExpr attribute="Entry" context="#pop" String=".*:" minimal="true"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Name" defStyleNum="dsKeyword"/>
|
||||
<itemData name="E-Mail" defStyleNum="dsOthers"/>
|
||||
<itemData name="Date" defStyleNum="dsDataType"/>
|
||||
<itemData name="Entry" defStyleNum="dsDecVal"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
@@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!-- Highlighting for Common Intermediate Language (CIL) files
|
||||
https://en.wikipedia.org/wiki/Common_Intermediate_Language
|
||||
-->
|
||||
<language name="Common Intermediate Language (CIL)" version="3" kateversion="5.0" section="Assembler" extensions="*.il" author="Volker Krause (vkrause@kde.org)" license="MIT">
|
||||
<highlighting>
|
||||
<list name="keyword-list">
|
||||
<item>cil</item>
|
||||
<item>class</item>
|
||||
<item>catch</item>
|
||||
<item>default</item>
|
||||
<item>extends</item>
|
||||
<item>extern</item>
|
||||
<item>finally</item>
|
||||
<item>instance</item>
|
||||
<item>managed</item>
|
||||
<item>method</item>
|
||||
<item>private</item>
|
||||
<item>public</item>
|
||||
<item>static</item>
|
||||
<item>try</item>
|
||||
<item>virtual</item>
|
||||
</list>
|
||||
<list name="type-list">
|
||||
<item>bool</item>
|
||||
<item>float32</item>
|
||||
<item>float64</item>
|
||||
<item>int8</item>
|
||||
<item>int32</item>
|
||||
<item>int64</item>
|
||||
<item>object</item>
|
||||
<item>string</item>
|
||||
<item>unsigned</item>
|
||||
<item>void</item>
|
||||
</list>
|
||||
<list name="meta-list">
|
||||
<item>assembly</item>
|
||||
<item>custom</item>
|
||||
<item>entrypoint</item>
|
||||
<item>field</item>
|
||||
<item>locals</item>
|
||||
<item>namespace</item>
|
||||
<item>maxstack</item>
|
||||
<item>module</item>
|
||||
<item>property</item>
|
||||
</list>
|
||||
<!-- see https://en.wikipedia.org/wiki/List_of_CIL_instructions -->
|
||||
<list name="op-list">
|
||||
<item>add</item>
|
||||
<item>and</item>
|
||||
<item>arglist</item>
|
||||
<item>beq</item>
|
||||
<item>bge</item>
|
||||
<item>bgt</item>
|
||||
<item>ble</item>
|
||||
<item>blt</item>
|
||||
<item>bne</item>
|
||||
<item>box</item>
|
||||
<item>br</item>
|
||||
<item>break</item>
|
||||
<item>brfalse</item>
|
||||
<item>brinst</item>
|
||||
<item>brnull</item>
|
||||
<item>brtrue</item>
|
||||
<item>brzero</item>
|
||||
<item>call</item>
|
||||
<item>calli</item>
|
||||
<item>callvirt</item>
|
||||
<item>castclass</item>
|
||||
<item>ceq</item>
|
||||
<item>cgt</item>
|
||||
<item>ckfinite</item>
|
||||
<item>clt</item>
|
||||
<item>constrained</item>
|
||||
<item>conv</item>
|
||||
<item>cpblk</item>
|
||||
<item>cpobj</item>
|
||||
<item>div</item>
|
||||
<item>dup</item>
|
||||
<item>endfault</item>
|
||||
<item>endfilter</item>
|
||||
<item>endfinally</item>
|
||||
<item>initblk</item>
|
||||
<item>initobj</item>
|
||||
<item>isinst</item>
|
||||
<item>jmp</item>
|
||||
<item>ldarg</item>
|
||||
<item>ldarga</item>
|
||||
<item>ldc</item>
|
||||
<item>ldelem</item>
|
||||
<item>ldelema</item>
|
||||
<item>ldfld</item>
|
||||
<item>ldflda</item>
|
||||
<item>ldftn</item>
|
||||
<item>ldind</item>
|
||||
<item>ldlen</item>
|
||||
<item>ldloc</item>
|
||||
<item>ldloca</item>
|
||||
<item>ldnull</item>
|
||||
<item>ldobj</item>
|
||||
<item>ldsfld</item>
|
||||
<item>ldsflda</item>
|
||||
<item>ldstr</item>
|
||||
<item>ldtoken</item>
|
||||
<item>ldvirtftn</item>
|
||||
<item>leave</item>
|
||||
<item>localloc</item>
|
||||
<item>mkrefany</item>
|
||||
<item>mul</item>
|
||||
<item>neg</item>
|
||||
<item>newarr</item>
|
||||
<item>newobj</item>
|
||||
<item>nop</item>
|
||||
<item>not</item>
|
||||
<item>or</item>
|
||||
<item>pop</item>
|
||||
<item>readonly</item>
|
||||
<item>refanytype</item>
|
||||
<item>refanyval</item>
|
||||
<item>rem</item>
|
||||
<item>ret</item>
|
||||
<item>rethrow</item>
|
||||
<item>shl</item>
|
||||
<item>shr</item>
|
||||
<item>sizeof</item>
|
||||
<item>starg</item>
|
||||
<item>stelem</item>
|
||||
<item>stfld</item>
|
||||
<item>stind</item>
|
||||
<item>stloc</item>
|
||||
<item>stobj</item>
|
||||
<item>stsfld</item>
|
||||
<item>sub</item>
|
||||
<item>switch</item>
|
||||
<item>tail</item>
|
||||
<item>throw</item>
|
||||
<item>unaligned</item>
|
||||
<item>unbox</item>
|
||||
<item>volatile</item>
|
||||
<item>xor</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="normal-context" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" char="/" char1="/" context="comment-context"/>
|
||||
<Detect2Chars attribute="Comment" context="multiline-comment-context" char="/" char1="*" beginRegion="CommentRegion"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keyword-list"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="type-list"/>
|
||||
<keyword attribute="Meta Data" context="#stay" String="meta-list"/>
|
||||
<keyword attribute="Instructions" context="#stay" String="op-list"/>
|
||||
<DetectChar context="#stay" char="{" beginRegion="BlockRegion"/>
|
||||
<DetectChar context="#stay" char="}" endRegion="BlockRegion"/>
|
||||
<DetectChar attribute="String" context="string-context" char="""/>
|
||||
<RegExpr attribute="Label" context="#stay" String="IL_[\da-f]+:"/>
|
||||
</context>
|
||||
|
||||
<context name="string-context" attribute="String" lineEndContext="#pop">
|
||||
<HlCStringChar attribute="Special Character" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
|
||||
<context name="comment-context" lineEndContext="#pop" attribute="Comment">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context name="multiline-comment-context" lineEndContext="#stay" attribute="Comment">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="CommentRegion"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="false"/>
|
||||
<itemData name="Special Character" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Label" defStyleNum="dsPreprocessor" spellChecking="false"/>
|
||||
<itemData name="Meta Data" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Instructions" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="multiLine" start="/*" end="*/" region="CommentRegion"/>
|
||||
<comment name="singleLine" start="//"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
@@ -0,0 +1,306 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="Cisco" version="9" kateversion="5.0" section="Configuration" extensions="*.cis" mimetype="text/cisco" author="Raphaël GRAPINET" license="LGPL">
|
||||
<highlighting>
|
||||
<list name = "commands">
|
||||
<item>aaa</item>
|
||||
<item>access-list</item>
|
||||
<item>address</item>
|
||||
<item>alias</item>
|
||||
<item>arp</item>
|
||||
<item>async-bootp</item>
|
||||
<item>banner</item>
|
||||
<item>boot</item>
|
||||
<item>bridge</item>
|
||||
<item>buffers</item>
|
||||
<item>busy-message</item>
|
||||
<item>call-history-mib</item>
|
||||
<item>cdp</item>
|
||||
<item>chat-script</item>
|
||||
<item>class-map</item>
|
||||
<item>clock</item>
|
||||
<item>cns</item>
|
||||
<item>config-register</item>
|
||||
<item>controller</item>
|
||||
<item>crypto</item>
|
||||
<item>default</item>
|
||||
<item>default-value</item>
|
||||
<item>dialer</item>
|
||||
<item>dialer-list</item>
|
||||
<item>dnsix-dmdp</item>
|
||||
<item>dnsix-nat</item>
|
||||
<item>downward-compatible-config</item>
|
||||
<item>enable</item>
|
||||
<item>end</item>
|
||||
<item>exception</item>
|
||||
<item>exit</item>
|
||||
<item>file</item>
|
||||
<item>frame-relay</item>
|
||||
<item>help</item>
|
||||
<item>hostname</item>
|
||||
<item>interface</item>
|
||||
<item>ip</item>
|
||||
<item>isdn</item>
|
||||
<item>isdn-mib</item>
|
||||
<item>kerberos</item>
|
||||
<item>key</item>
|
||||
<item>line</item>
|
||||
<item>logging</item>
|
||||
<item>login-string</item>
|
||||
<item>map-class</item>
|
||||
<item>map-list</item>
|
||||
<item>memory-size</item>
|
||||
<item>menu</item>
|
||||
<item>modemcap</item>
|
||||
<item>multilink</item>
|
||||
<item>netbios</item>
|
||||
<item>no</item>
|
||||
<item>ntp</item>
|
||||
<item>partition</item>
|
||||
<item>policy-map</item>
|
||||
<item>priority-list</item>
|
||||
<item>privilege</item>
|
||||
<item>process-max-time</item>
|
||||
<item>prompt</item>
|
||||
<item>queue-list</item>
|
||||
<item>resume-string</item>
|
||||
<item>rlogin</item>
|
||||
<item>rmon</item>
|
||||
<item>route-map</item>
|
||||
<item>router</item>
|
||||
<item>rtr</item>
|
||||
<item>scheduler</item>
|
||||
<item>service</item>
|
||||
<item>snmp-server</item>
|
||||
<item>sntp</item>
|
||||
<item>stackmaker</item>
|
||||
<item>state-machine</item>
|
||||
<item>subscriber-policy</item>
|
||||
<item>tacacs-server</item>
|
||||
<item>template</item>
|
||||
<item>terminal-queue</item>
|
||||
<item>tftp-server</item>
|
||||
<item>time-range</item>
|
||||
<item>username</item>
|
||||
<item>virtual-profile</item>
|
||||
<item>virtual-template</item>
|
||||
<item>vpdn</item>
|
||||
<item>vpdn-group</item>
|
||||
<item>x25</item>
|
||||
<item>x29</item>
|
||||
</list>
|
||||
<list name = "parameters">
|
||||
<item>accounting</item>
|
||||
<item>accounting-list</item>
|
||||
<item>accounting-threshold</item>
|
||||
<item>accounting-transits</item>
|
||||
<item>address-pool</item>
|
||||
<item>as-path</item>
|
||||
<item>audit</item>
|
||||
<item>auth-proxy</item>
|
||||
<item>authentication</item>
|
||||
<item>authorization</item>
|
||||
<item>bgp-community</item>
|
||||
<item>bootp</item>
|
||||
<item>cef</item>
|
||||
<item>classless</item>
|
||||
<item>community-list</item>
|
||||
<item>default-gateway</item>
|
||||
<item>default-network</item>
|
||||
<item>dhcp</item>
|
||||
<item>dhcp-server</item>
|
||||
<item>domain-list</item>
|
||||
<item>domain-lookup</item>
|
||||
<item>domain-name</item>
|
||||
<item>dvmrp</item>
|
||||
<item>exec-callback</item>
|
||||
<item>extcommunity-list</item>
|
||||
<item>finger</item>
|
||||
<item>flow-aggregation</item>
|
||||
<item>flow-cache</item>
|
||||
<item>flow-export</item>
|
||||
<item>forward-protocol</item>
|
||||
<item>ftp</item>
|
||||
<item>gratuitous-arps</item>
|
||||
<item>host</item>
|
||||
<item>host-routing</item>
|
||||
<item>hp-host</item>
|
||||
<item>http</item>
|
||||
<item>icmp</item>
|
||||
<item>inspect</item>
|
||||
<item>local</item>
|
||||
<item>mrm</item>
|
||||
<item>mroute</item>
|
||||
<item>msdp</item>
|
||||
<item>multicast</item>
|
||||
<item>multicast-routing</item>
|
||||
<item>name-server</item>
|
||||
<item>nat</item>
|
||||
<item>new-model</item>
|
||||
<item>ospf</item>
|
||||
<item>password</item>
|
||||
<item>password-encryption</item>
|
||||
<item>pgm</item>
|
||||
<item>pim</item>
|
||||
<item>port-map</item>
|
||||
<item>prefix-list</item>
|
||||
<item>radius</item>
|
||||
<item>rcmd</item>
|
||||
<item>reflexive-list</item>
|
||||
<item>route</item>
|
||||
<item>routing</item>
|
||||
<item>rsvp</item>
|
||||
<item>rtcp</item>
|
||||
<item>sap</item>
|
||||
<item>sdr</item>
|
||||
<item>security</item>
|
||||
<item>source-route</item>
|
||||
<item>subnet-zero</item>
|
||||
<item>tacacs</item>
|
||||
<item>tcp</item>
|
||||
<item>tcp-small-servers</item>
|
||||
<item>telnet</item>
|
||||
<item>tftp</item>
|
||||
<item>timestamps</item>
|
||||
<item>udp-small-servers</item>
|
||||
<item>vrf</item>
|
||||
<item>wccp</item>
|
||||
</list>
|
||||
<list name = "options">
|
||||
<item>accounting</item>
|
||||
<item>accounting-list</item>
|
||||
<item>accounting-threshold</item>
|
||||
<item>accounting-transits</item>
|
||||
<item>address-pool</item>
|
||||
<item>as-path</item>
|
||||
<item>audit</item>
|
||||
<item>auth-proxy</item>
|
||||
<item>authentication</item>
|
||||
<item>authorization</item>
|
||||
<item>bgp-community</item>
|
||||
<item>bootp</item>
|
||||
<item>cef</item>
|
||||
<item>classless</item>
|
||||
<item>community-list</item>
|
||||
<item>default-gateway</item>
|
||||
<item>default-network</item>
|
||||
<item>dhcp</item>
|
||||
<item>dhcp-server</item>
|
||||
<item>domain-list</item>
|
||||
<item>domain-lookup</item>
|
||||
<item>domain-name</item>
|
||||
<item>dvmrp</item>
|
||||
<item>exec-callback</item>
|
||||
<item>extcommunity-list</item>
|
||||
<item>finger</item>
|
||||
<item>flow-aggregation</item>
|
||||
<item>flow-cache</item>
|
||||
<item>flow-export</item>
|
||||
<item>forward-protocol</item>
|
||||
<item>ftp</item>
|
||||
<item>gratuitous-arps</item>
|
||||
<item>host</item>
|
||||
<item>host-routing</item>
|
||||
<item>hp-host</item>
|
||||
<item>http</item>
|
||||
<item>icmp</item>
|
||||
<item>inspect</item>
|
||||
<item>local</item>
|
||||
<item>mrm</item>
|
||||
<item>mroute</item>
|
||||
<item>msdp</item>
|
||||
<item>multicast</item>
|
||||
<item>multicast-routing</item>
|
||||
<item>name-server</item>
|
||||
<item>nat</item>
|
||||
<item>new-model</item>
|
||||
<item>ospf</item>
|
||||
<item>password</item>
|
||||
<item>password-encryption</item>
|
||||
<item>pgm</item>
|
||||
<item>pim</item>
|
||||
<item>port-map</item>
|
||||
<item>prefix-list</item>
|
||||
<item>radius</item>
|
||||
<item>rcmd</item>
|
||||
<item>reflexive-list</item>
|
||||
<item>route</item>
|
||||
<item>routing</item>
|
||||
<item>rsvp</item>
|
||||
<item>rtcp</item>
|
||||
<item>sap</item>
|
||||
<item>sdr</item>
|
||||
<item>security</item>
|
||||
<item>source-route</item>
|
||||
<item>subnet-zero</item>
|
||||
<item>tacacs</item>
|
||||
<item>tcp</item>
|
||||
<item>tcp-small-servers</item>
|
||||
<item>telnet</item>
|
||||
<item>tftp</item>
|
||||
<item>timestamps</item>
|
||||
<item>udp-small-servers</item>
|
||||
<item>vrf</item>
|
||||
<item>wccp</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name = "Base" attribute = "Normal Text" lineEndContext = "#stay">
|
||||
<WordDetect attribute="Keyword" context="#stay" String="done" insensitive="true" endRegion="dodone1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="do" insensitive="true" beginRegion="dodone1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="elif" insensitive="true" beginRegion="iffi1" endRegion="iffi1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="if" insensitive="true" beginRegion="iffi1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="fi" insensitive="true" endRegion="iffi1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="case" insensitive="true" beginRegion="case1"/>
|
||||
<WordDetect attribute="Keyword" context="#stay" String="esac" insensitive="true" endRegion="case1"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="^[^()]+\)" insensitive="true" beginRegion="subcase1" column="0"/>
|
||||
<Detect2Chars attribute="Keyword" context="#stay" char=";" char1=";" endRegion="subcase1"/>
|
||||
<DetectChar attribute="Keyword" context="#stay" char="{" beginRegion="func1"/>
|
||||
<DetectChar attribute="Keyword" context="#stay" char="}" endRegion="func1"/>
|
||||
|
||||
<keyword String = "commands" attribute = "Command" context = "#stay"/>
|
||||
<keyword String = "parameters" attribute = "Parameter" context = "#stay"/>
|
||||
<keyword String = "options" attribute = "Keyword" context = "#stay"/>
|
||||
<Int attribute = "Decimal" context = "#stay"/>
|
||||
<RegExpr String = "\$[A-Za-z0-9_?{}!]+" attribute = "Parameter" context = "#stay"/>
|
||||
<RangeDetect char = """ char1 = """ attribute = "String" context = "#stay"/>
|
||||
<AnyChar String = "|<>=;" attribute = "Operator" context = "#stay"/>
|
||||
<DetectChar char="'" attribute = "String" context = "Single Quote"/>
|
||||
<DetectChar char="`" attribute = "Substitution" context = "Substitution"/>
|
||||
<Detect2Chars attribute = "Normal Text" context = "#stay" char = "\" char1 = "#"/>
|
||||
<AnyChar String="#!" attribute = "Comment" context="Comment"/>
|
||||
|
||||
</context>
|
||||
<context name = "Single Quote" attribute = "String" lineEndContext="#stay">
|
||||
<Detect2Chars char = "\" char1 = "\" attribute = "String" context = "#stay"/>
|
||||
<Detect2Chars char = "\" char1 = "'" attribute = "String" context = "#stay"/>
|
||||
<DetectChar char = "'" attribute = "String" context = "#pop"/>
|
||||
</context>
|
||||
<context name = "Substitution" attribute = "Substitution" lineEndContext="#stay">
|
||||
<Detect2Chars char = "\" char1 = "\" attribute = "String" context = "#stay"/>
|
||||
<Detect2Chars char = "\" char1 = "`" attribute = "String" context = "#stay"/>
|
||||
<DetectChar char = "`" attribute = "Substitution" context = "#pop"/>
|
||||
</context>
|
||||
<context name = "Comment" attribute = "Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name = "Normal Text" defStyleNum = "dsNormal"/>
|
||||
<itemData name = "Keyword" defStyleNum = "dsKeyword"/>
|
||||
<itemData name = "Decimal" defStyleNum = "dsDecVal"/>
|
||||
<itemData name = "String" defStyleNum = "dsString"/>
|
||||
<itemData name = "Comment" defStyleNum = "dsComment"/>
|
||||
<itemData name = "Substitution" defStyleNum = "dsOthers"/>
|
||||
<itemData name = "Parameter" defStyleNum = "dsVariable"/>
|
||||
<itemData name = "Operator" defStyleNum = "dsOperator"/>
|
||||
<itemData name = "Command" defStyleNum = "dsNormal"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="!"/>
|
||||
</comments>
|
||||
<keywords casesensitive="0"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,498 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="Clipper" version="8" kateversion="5.0" section="Sources" extensions="*.prg;*.PRG;*.ch" mimetype="text/x-clipper-src" priority="2" author="Andrey Cherepanov (sibskull@mail.ru)" license="GPL">
|
||||
<highlighting>
|
||||
|
||||
<list name="keywords">
|
||||
<!-- compiler directives and structures -->
|
||||
<item>.and.</item>
|
||||
<item>announce</item>
|
||||
<item>begin</item>
|
||||
<item>case</item>
|
||||
<item>command</item>
|
||||
<item>define</item>
|
||||
<item>do</item>
|
||||
<item>elseif</item>
|
||||
<item>else</item>
|
||||
<item>endcase</item>
|
||||
<item>enddo</item>
|
||||
<item>endif</item>
|
||||
<item>error</item>
|
||||
<item>exit</item>
|
||||
<item>field</item>
|
||||
<item>.f.</item>
|
||||
<item>for</item>
|
||||
<item>function</item>
|
||||
<item>ifdef</item>
|
||||
<item>if</item>
|
||||
<item>include</item>
|
||||
<item>init</item>
|
||||
<item>inndef</item>
|
||||
<item>local</item>
|
||||
<item>memvar</item>
|
||||
<item>next</item>
|
||||
<item>nil</item>
|
||||
<item>.not.</item>
|
||||
<item>.or.</item>
|
||||
<item>other</item>
|
||||
<item>parameters</item>
|
||||
<item>private</item>
|
||||
<item>procedure</item>
|
||||
<item>public</item>
|
||||
<item>request</item>
|
||||
<item>return</item>
|
||||
<item>sequence</item>
|
||||
<item>static</item>
|
||||
<item>stdout</item>
|
||||
<item>.t.</item>
|
||||
<item>traslate</item>
|
||||
<item>undef</item>
|
||||
<item>while</item>
|
||||
<item>xcommand</item>
|
||||
<item>xtranslate</item>
|
||||
</list>
|
||||
|
||||
<list name="commands">
|
||||
<!-- Commands -->
|
||||
<item>accept</item>
|
||||
<item>all</item>
|
||||
<item>alternate</item>
|
||||
<item>append</item>
|
||||
<item>ascending</item>
|
||||
<item>average</item>
|
||||
<item>bell</item>
|
||||
<item>blank</item>
|
||||
<item>box</item>
|
||||
<item>century</item>
|
||||
<item>clear</item>
|
||||
<item>close</item>
|
||||
<item>coclor</item>
|
||||
<item>color</item>
|
||||
<item>commit</item>
|
||||
<item>confirm</item>
|
||||
<item>console</item>
|
||||
<item>continue</item>
|
||||
<item>copy</item>
|
||||
<item>count</item>
|
||||
<item>create</item>
|
||||
<item>cursor</item>
|
||||
<item>date</item>
|
||||
<item>decimals</item>
|
||||
<item>default</item>
|
||||
<item>deleted</item>
|
||||
<item>delete</item>
|
||||
<item>delimiters</item>
|
||||
<item>descending</item>
|
||||
<item>device</item>
|
||||
<item>display</item>
|
||||
<item>do</item>
|
||||
<item>eject</item>
|
||||
<item>epoch</item>
|
||||
<item>erase</item>
|
||||
<item>escape</item>
|
||||
<item>eval</item>
|
||||
<item>every</item>
|
||||
<item>exact</item>
|
||||
<item>extended</item>
|
||||
<item>file</item>
|
||||
<item>filter</item>
|
||||
<item>fixed</item>
|
||||
<item>form</item>
|
||||
<item>from</item>
|
||||
<item>get</item>
|
||||
<item>gets</item>
|
||||
<item>go</item>
|
||||
<item>goto</item>
|
||||
<item>index</item>
|
||||
<item>input</item>
|
||||
<item>intensity</item>
|
||||
<item>?</item>
|
||||
<item>??</item>
|
||||
<item>@</item>
|
||||
<item>join</item>
|
||||
<item>keyboard</item>
|
||||
<item>key</item>
|
||||
<item>label</item>
|
||||
<item>list</item>
|
||||
<item>locate</item>
|
||||
<item>margin</item>
|
||||
<item>memory</item>
|
||||
<item>menu</item>
|
||||
<item>message</item>
|
||||
<item>new</item>
|
||||
<item>on</item>
|
||||
<item>order</item>
|
||||
<item>pack</item>
|
||||
<item>path</item>
|
||||
<item>pict</item>
|
||||
<item>printer</item>
|
||||
<item>prompt</item>
|
||||
<item>quit</item>
|
||||
<item>range</item>
|
||||
<item>read</item>
|
||||
<item>recall</item>
|
||||
<item>record</item>
|
||||
<item>reindex</item>
|
||||
<item>relation</item>
|
||||
<item>release</item>
|
||||
<item>rename</item>
|
||||
<item>replace</item>
|
||||
<item>report</item>
|
||||
<item>rest</item>
|
||||
<item>restore</item>
|
||||
<item>run</item>
|
||||
<item>save</item>
|
||||
<item>say</item>
|
||||
<item>scoreboard</item>
|
||||
<item>seek</item>
|
||||
<item>select</item>
|
||||
<item>set</item>
|
||||
<item>skip</item>
|
||||
<item>softseek</item>
|
||||
<item>sort</item>
|
||||
<item>structure</item>
|
||||
<item>sum</item>
|
||||
<item>tag</item>
|
||||
<item>to</item>
|
||||
<item>total</item>
|
||||
<item>typeahead</item>
|
||||
<item>type</item>
|
||||
<item>unique</item>
|
||||
<item>unlock</item>
|
||||
<item>update</item>
|
||||
<item>use</item>
|
||||
<item>valid</item>
|
||||
<item>wait</item>
|
||||
<item>when</item>
|
||||
<item>with</item>
|
||||
<item>wrap</item>
|
||||
<item>zap</item>
|
||||
</list>
|
||||
|
||||
<list name="functions">
|
||||
<!-- Functions -->
|
||||
<item>aadd</item>
|
||||
<item>abs</item>
|
||||
<item>achoice</item>
|
||||
<item>aclone</item>
|
||||
<item>acopy</item>
|
||||
<item>adel</item>
|
||||
<item>aeval</item>
|
||||
<item>afill</item>
|
||||
<item>ains</item>
|
||||
<item>alert</item>
|
||||
<item>alias</item>
|
||||
<item>alltrim</item>
|
||||
<item>altd</item>
|
||||
<item>array</item>
|
||||
<item>ascan</item>
|
||||
<item>asize</item>
|
||||
<item>asort</item>
|
||||
<item>atail</item>
|
||||
<item>at</item>
|
||||
<item>bin2i</item>
|
||||
<item>bin2l</item>
|
||||
<item>bin2w</item>
|
||||
<item>bof</item>
|
||||
<item>break</item>
|
||||
<item>browse</item>
|
||||
<item>cdowchr</item>
|
||||
<item>chr</item>
|
||||
<item>cmonth</item>
|
||||
<item>col</item>
|
||||
<item>colorselect</item>
|
||||
<item>ctod</item>
|
||||
<item>curdir</item>
|
||||
<item>date</item>
|
||||
<item>day</item>
|
||||
<item>dbappend</item>
|
||||
<item>dbclearall</item>
|
||||
<item>dbclearfilter</item>
|
||||
<item>dbclearindex</item>
|
||||
<item>dbclearrelation</item>
|
||||
<item>dbcloseall</item>
|
||||
<item>dbclosearea</item>
|
||||
<item>dbcommitall</item>
|
||||
<item>dbcommit</item>
|
||||
<item>dbcreateindex</item>
|
||||
<item>dbcreate</item>
|
||||
<item>dbdelete</item>
|
||||
<item>dbedit</item>
|
||||
<item>dbeval</item>
|
||||
<item>dbfilter</item>
|
||||
<item>dbf</item>
|
||||
<item>dbgobottom</item>
|
||||
<item>dbgoto</item>
|
||||
<item>dbgotop</item>
|
||||
<item>dbrecall</item>
|
||||
<item>dbreindex</item>
|
||||
<item>dbrelation</item>
|
||||
<item>dbrlock</item>
|
||||
<item>dbrlocklist</item>
|
||||
<item>dbrselect</item>
|
||||
<item>dbrunlock</item>
|
||||
<item>dbseek</item>
|
||||
<item>dbselectarea</item>
|
||||
<item>dbsetfilter</item>
|
||||
<item>dbsetindex</item>
|
||||
<item>dbsetorder</item>
|
||||
<item>dbsetrelation</item>
|
||||
<item>dbskip</item>
|
||||
<item>dbstruct</item>
|
||||
<item>dbunlockall</item>
|
||||
<item>dbunlock</item>
|
||||
<item>dbusearea</item>
|
||||
<item>deleted</item>
|
||||
<item>descend</item>
|
||||
<item>devout</item>
|
||||
<item>devpos</item>
|
||||
<item>directory</item>
|
||||
<item>dispbegin</item>
|
||||
<item>dispbox</item>
|
||||
<item>dispcount</item>
|
||||
<item>dispend</item>
|
||||
<item>dispout</item>
|
||||
<item>dispspace</item>
|
||||
<item>doserror</item>
|
||||
<item>dow</item>
|
||||
<item>dtoc</item>
|
||||
<item>dtos</item>
|
||||
<item>empty</item>
|
||||
<item>eof</item>
|
||||
<item>errorblock</item>
|
||||
<item>errorinhandler</item>
|
||||
<item>errorlevel</item>
|
||||
<item>eval</item>
|
||||
<item>exp</item>
|
||||
<item>fclose</item>
|
||||
<item>fcount</item>
|
||||
<item>fcreate</item>
|
||||
<item>ferase</item>
|
||||
<item>ferror</item>
|
||||
<item>fieldblock</item>
|
||||
<item>fieldget</item>
|
||||
<item>field</item>
|
||||
<item>fieldname</item>
|
||||
<item>fieldpos</item>
|
||||
<item>fieldput</item>
|
||||
<item>fieldwblock</item>
|
||||
<item>file</item>
|
||||
<item>flock</item>
|
||||
<item>fopen</item>
|
||||
<item>found</item>
|
||||
<item>fread</item>
|
||||
<item>freadstr</item>
|
||||
<item>frename</item>
|
||||
<item>fseek</item>
|
||||
<item>fwrite</item>
|
||||
<item>getactive</item>
|
||||
<item>getenv</item>
|
||||
<item>hardcr</item>
|
||||
<item>header</item>
|
||||
<item>i2bin</item>
|
||||
<item>iif</item>
|
||||
<item>indexext</item>
|
||||
<item>indexkey</item>
|
||||
<item>indexord</item>
|
||||
<item>inkey</item>
|
||||
<item>int</item>
|
||||
<item>isalpha</item>
|
||||
<item>iscolor</item>
|
||||
<item>isdigit</item>
|
||||
<item>islower</item>
|
||||
<item>isprinter</item>
|
||||
<item>isupper</item>
|
||||
<item>l2bin</item>
|
||||
<item>lastkey</item>
|
||||
<item>lastrec</item>
|
||||
<item>left</item>
|
||||
<item>len</item>
|
||||
<item>lock</item>
|
||||
<item>log</item>
|
||||
<item>lower</item>
|
||||
<item>ltrim</item>
|
||||
<item>lupdate</item>
|
||||
<item>maxcol</item>
|
||||
<item>max</item>
|
||||
<item>maxrow</item>
|
||||
<item>memoedit</item>
|
||||
<item>memoline</item>
|
||||
<item>memoread</item>
|
||||
<item>memory</item>
|
||||
<item>memotran</item>
|
||||
<item>memowrit</item>
|
||||
<item>memvarblock</item>
|
||||
<item>min</item>
|
||||
<item>mlcount</item>
|
||||
<item>mlctopos</item>
|
||||
<item>mlpos</item>
|
||||
<item>mod</item>
|
||||
<item>month</item>
|
||||
<item>mpostolc</item>
|
||||
<item>neterr</item>
|
||||
<item>netname</item>
|
||||
<item>nextkey</item>
|
||||
<item>nosnow</item>
|
||||
<item>ordbagext</item>
|
||||
<item>ordbagname</item>
|
||||
<item>ordcreate</item>
|
||||
<item>orddestroy</item>
|
||||
<item>ordfor</item>
|
||||
<item>ordkey</item>
|
||||
<item>ordlistadd</item>
|
||||
<item>ordlistclear</item>
|
||||
<item>ordlistrebuild</item>
|
||||
<item>ordname</item>
|
||||
<item>ordnumber</item>
|
||||
<item>ordsetfocus</item>
|
||||
<item>os</item>
|
||||
<item>outerr</item>
|
||||
<item>outstd</item>
|
||||
<item>padc</item>
|
||||
<item>padl</item>
|
||||
<item>padr</item>
|
||||
<item>pcol</item>
|
||||
<item>pcount</item>
|
||||
<item>proclineprocname</item>
|
||||
<item>prow</item>
|
||||
<item>qout</item>
|
||||
<item>qqout</item>
|
||||
<item>rat</item>
|
||||
<item>rddlist</item>
|
||||
<item>rddname</item>
|
||||
<item>rddsetdefault</item>
|
||||
<item>readexit</item>
|
||||
<item>readinsert</item>
|
||||
<item>readmodal</item>
|
||||
<item>readvar</item>
|
||||
<item>reccount</item>
|
||||
<item>recno</item>
|
||||
<item>recsize</item>
|
||||
<item>replicate</item>
|
||||
<item>restscreen</item>
|
||||
<item>right</item>
|
||||
<item>rlock</item>
|
||||
<item>round</item>
|
||||
<item>row</item>
|
||||
<item>rtrim</item>
|
||||
<item>savesreen</item>
|
||||
<item>scroll</item>
|
||||
<item>seconds</item>
|
||||
<item>select</item>
|
||||
<item>setblink</item>
|
||||
<item>setcancel</item>
|
||||
<item>setcolor</item>
|
||||
<item>setcursor</item>
|
||||
<item>setkey</item>
|
||||
<item>setmode</item>
|
||||
<item>setpos</item>
|
||||
<item>setprc</item>
|
||||
<item>soundex</item>
|
||||
<item>space</item>
|
||||
<item>sqrt</item>
|
||||
<item>str</item>
|
||||
<item>strtran</item>
|
||||
<item>stuff</item>
|
||||
<item>substr</item>
|
||||
<item>time</item>
|
||||
<item>tone</item>
|
||||
<item>transform</item>
|
||||
<item>trim</item>
|
||||
<item>updated</item>
|
||||
<item>upper</item>
|
||||
<item>used</item>
|
||||
<item>val</item>
|
||||
<item>valtype</item>
|
||||
<item>version</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<WordDetect attribute="Keyword" context="#stay" String="function" insensitive="true" beginRegion="regFunction" />
|
||||
<WordDetect attribute="Keyword" context="#stay" column="0" String="return" insensitive="true" endRegion="regFunction" />
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bbegin\s+sequence\b" insensitive="true" beginRegion="regSequence" />
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bend\s+sequence\b" insensitive="true" endRegion="regSequence" />
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bdo\s+case\b" insensitive="true" beginRegion="regDoCase" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="endcase" insensitive="true" endRegion="regDoCase" />
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\bdo\s+while\b" insensitive="true" beginRegion="regDoWhile" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="enddo" insensitive="true" endRegion="regDoWhile" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="for" insensitive="true" beginRegion="regFor" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="next" insensitive="true" endRegion="regFor" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="if" insensitive="true" beginRegion="regIf" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="elseif" insensitive="true" endRegion="regIf" beginRegion="regIf" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="else" insensitive="true" endRegion="regIf" beginRegion="regIf" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="endif" insensitive="true" endRegion="regIf" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="switch" insensitive="true" beginRegion="regSwitch" />
|
||||
<WordDetect attribute="Keyword" context="#stay" String="endswitch" insensitive="true" endRegion="regSwitch" />
|
||||
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Command" context="#stay" String="commands"/>
|
||||
<keyword attribute="Function" context="#stay" String="functions"/>
|
||||
<HlCHex attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<RegExpr attribute="Region Marker" context="#stay" String="//\s*BEGIN.*$" beginRegion="regMarker"/>
|
||||
<RegExpr attribute="Region Marker" context="#stay" String="//\s*END.*$" endRegion="regMarker"/>
|
||||
<Detect2Chars attribute="Comment" context="LineComment" char="/" char1="/"/>
|
||||
<RegExpr attribute="Comment" context="LineComment" String="^\s*\*.*$" column="0"/>
|
||||
<Detect2Chars attribute="Comment" context="BlockComment" char="/" char1="*" beginRegion="Comment2" />
|
||||
<AnyChar attribute="Symbol" context="#stay" String="!%&()+,-<:=>[]^~"/>
|
||||
<DetectChar attribute="Preprocessor" context="Preprocessor" char="#"/>
|
||||
<Detect2Chars attribute="Eval Block" context="EvalBlock" char="{" char1="|"/>
|
||||
<DetectChar attribute="String" context="String2" char="'"/>
|
||||
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<LineContinue attribute="String" context="#stay"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="LineComment">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="BlockComment">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
|
||||
<LineContinue attribute="Preprocessor" context="#stay"/>
|
||||
<RangeDetect attribute="Prep. Lib" context="#stay" char=""" char1="""/>
|
||||
<RangeDetect attribute="Prep. Lib" context="#stay" char="<" char1=">"/>
|
||||
<RegExpr attribute="Region Marker" context="#stay" String="//\s*BEGIN.*$" beginRegion="regMarker"/>
|
||||
<RegExpr attribute="Region Marker" context="#stay" String="//\s*END.*$" endRegion="regMarker"/>
|
||||
<Detect2Chars attribute="Comment" context="LineComment" char="/" char1="/"/>
|
||||
<Detect2Chars attribute="Comment" context="BlockComment" char="/" char1="*" beginRegion="Comment2" />
|
||||
</context>
|
||||
<context attribute="Eval Block" lineEndContext="#stay" name="EvalBlock">
|
||||
<LineContinue attribute="Eval Block" context="#stay"/>
|
||||
<DetectChar attribute="Eval Block" context="#pop" char="}" />
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="String2">
|
||||
<LineContinue attribute="String" context="#stay"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Command" defStyleNum="dsDataType"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Preprocessor" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Prep. Lib" defStyleNum="dsImport"/>
|
||||
<itemData name="Eval Block" defStyleNum="dsOthers"/>
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" />
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment2" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" weakDeliminator="?." />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="CLIST" version="4" kateversion="5.0" section="Scripts" extensions="*.clist;*.CLIST" mimetype="" license="MIT">
|
||||
<!--
|
||||
Command LIST, or CLIST, is the scripting language for TSO (Time Sharing Option) on IBM mainframes running z/OS.
|
||||
Developers can use CLISTs to automate repetitive tasks or to automate complex TSO commands.
|
||||
-->
|
||||
<highlighting>
|
||||
<list name="control">
|
||||
<item>ATTN</item>
|
||||
<item>CONTROL</item>
|
||||
<item>DATA-ENDDATA</item>
|
||||
<item>DATA-PROMPT</item>
|
||||
<item>ERROR</item>
|
||||
<item>EXIT</item>
|
||||
<item>GLOBAL</item>
|
||||
<item>GOTO</item>
|
||||
<item>NGLOBAL</item>
|
||||
<item>PROC</item>
|
||||
<item>RETURN</item>
|
||||
<item>SYSCALL</item>
|
||||
<item>SYSREF</item>
|
||||
<item>TERMIN</item>
|
||||
<item>WRITE</item>
|
||||
<item>WRITENR</item>
|
||||
</list>
|
||||
<list name="assignment">
|
||||
<item>READ</item>
|
||||
<item>READDVAL</item>
|
||||
<item>SET</item>
|
||||
<item>LISTDSI</item>
|
||||
</list>
|
||||
<list name="flowcontrol">
|
||||
<item>DO</item>
|
||||
<item>IF</item>
|
||||
<item>TO</item>
|
||||
<item>THEN</item>
|
||||
<item>END</item>
|
||||
<item>ELSE</item>
|
||||
<item>SELECT</item>
|
||||
</list>
|
||||
<list name="IO">
|
||||
<item>CLOSFILE</item>
|
||||
<item>GETFILE</item>
|
||||
<item>OPENFILE</item>
|
||||
<item>PUTFILE</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<keyword attribute="Control" context="#stay" String="control" />
|
||||
<keyword attribute="Assignment" context="#stay" String="assignment" />
|
||||
<keyword attribute="Control Flow" context="#stay" String="flowcontrol" />
|
||||
<keyword attribute="inputOutput" context="#stay" String="IO" />
|
||||
<RegExpr attribute="Variable" context="#stay" insensitive="true" String="&+[A-Z0-9]*"/>
|
||||
<RegExpr attribute="Number" context="#stay" insensitive="true" String="\b(\d+)\b"/>
|
||||
<RegExpr attribute="String" context="#stay" insensitive="true" String="(?<=WRITE).*"/>
|
||||
<AnyChar attribute="String" context="String" String="'""/>
|
||||
<Detect2Chars attribute="Comment" context="comments" char="/" char1="*" beginRegion="Comment"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="comments">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Control" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="Assignment" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Control Flow" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="inputOutput" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Variable" defStyleNum="dsVariable"/>
|
||||
<itemData name="Number" defStyleNum="dsDataType"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="0" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,812 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
This file is part of KDE's kate project.
|
||||
|
||||
copyright : (C) 2004 by Dominik Haumann, (C) 2011 by Caspar Hasenclever
|
||||
|
||||
**********************************************************************
|
||||
* 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 Street, Fifth Floor, *
|
||||
* Boston, MA 02110-1301, USA. *
|
||||
**********************************************************************
|
||||
-->
|
||||
<language version="17" kateversion="5.0" name="Clojure" alternativeNames="CLJ" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">
|
||||
<highlighting>
|
||||
<list name="definitions">
|
||||
<item>def</item>
|
||||
<item>def-</item>
|
||||
<item>defalias</item>
|
||||
<item>defhinted</item>
|
||||
<item>definline</item>
|
||||
<item>defmethod</item>
|
||||
<item>defmulti</item>
|
||||
<item>defnk</item>
|
||||
<item>defn-memo</item>
|
||||
<item>defonce</item>
|
||||
<item>defonce-</item>
|
||||
<item>defprotocol</item>
|
||||
<item>defrecord</item>
|
||||
<item>defstruct</item>
|
||||
<item>defstruct-</item>
|
||||
<item>deftest</item>
|
||||
<item>deftest-</item>
|
||||
<item>deftype</item>
|
||||
<item>defunbound</item>
|
||||
<item>defunbound-</item>
|
||||
<item>defvar</item>
|
||||
<item>defvar-</item>
|
||||
</list>
|
||||
<list name="documentable_definitions">
|
||||
<item>defn</item>
|
||||
<item>defn-</item>
|
||||
<item>defmacro</item>
|
||||
<item>defmacro-</item>
|
||||
</list>
|
||||
<list name="keywords">
|
||||
<item><</item>
|
||||
<item><=</item>
|
||||
<item>=</item>
|
||||
<item>==</item>
|
||||
<item>></item>
|
||||
<item>>=</item>
|
||||
<item>-</item>
|
||||
<item>-'</item>
|
||||
<item>-></item>
|
||||
<item>->></item>
|
||||
<item>/</item>
|
||||
<item>.</item>
|
||||
<item>..</item>
|
||||
<item>*</item>
|
||||
<item>*'</item>
|
||||
<item>+</item>
|
||||
<item>+'</item>
|
||||
<item>accessor</item>
|
||||
<item>aclone</item>
|
||||
<item>add-classpath</item>
|
||||
<item>add-watch</item>
|
||||
<item>agent</item>
|
||||
<item>agent-errors</item>
|
||||
<item>aget</item>
|
||||
<item>alength</item>
|
||||
<item>alias</item>
|
||||
<item>all-ns</item>
|
||||
<item>alter</item>
|
||||
<item>alter-meta!</item>
|
||||
<item>alter-var-root</item>
|
||||
<item>amap</item>
|
||||
<item>ancestors</item>
|
||||
<item>and</item>
|
||||
<item>append-child</item>
|
||||
<item>apply</item>
|
||||
<item>apply-template</item>
|
||||
<item>are</item>
|
||||
<item>areduce</item>
|
||||
<item>array-map</item>
|
||||
<item>as-></item>
|
||||
<item>aset</item>
|
||||
<item>aset-boolean</item>
|
||||
<item>aset-byte</item>
|
||||
<item>aset-char</item>
|
||||
<item>aset-double</item>
|
||||
<item>aset-float</item>
|
||||
<item>aset-int</item>
|
||||
<item>aset-long</item>
|
||||
<item>aset-short</item>
|
||||
<item>assert</item>
|
||||
<item>assert-any</item>
|
||||
<item>assert-expr</item>
|
||||
<item>assert-predicate</item>
|
||||
<item>assoc</item>
|
||||
<item>assoc!</item>
|
||||
<item>associative?</item>
|
||||
<item>assoc-in</item>
|
||||
<item>atom</item>
|
||||
<item>atom?</item>
|
||||
<item>attrs</item>
|
||||
<item>await</item>
|
||||
<item>await1</item>
|
||||
<item>await-for</item>
|
||||
<item>bases</item>
|
||||
<item>bean</item>
|
||||
<item>bigdec</item>
|
||||
<item>bigint</item>
|
||||
<item>binding</item>
|
||||
<item>bit-and</item>
|
||||
<item>bit-and-not</item>
|
||||
<item>bit-clear</item>
|
||||
<item>bit-flip</item>
|
||||
<item>bit-not</item>
|
||||
<item>bit-or</item>
|
||||
<item>bit-set</item>
|
||||
<item>bit-shift-left</item>
|
||||
<item>bit-shift-right</item>
|
||||
<item>bit-test</item>
|
||||
<item>bit-xor</item>
|
||||
<item>boolean</item>
|
||||
<item>boolean-array</item>
|
||||
<item>booleans</item>
|
||||
<item>bound-fn</item>
|
||||
<item>bound-fn*</item>
|
||||
<item>branch?</item>
|
||||
<item>butlast</item>
|
||||
<item>byte</item>
|
||||
<item>byte-array</item>
|
||||
<item>bytes</item>
|
||||
<item>case</item>
|
||||
<item>cast</item>
|
||||
<item>catch</item>
|
||||
<item>char</item>
|
||||
<item>char?</item>
|
||||
<item>char-array</item>
|
||||
<item>char-escape-string</item>
|
||||
<item>char-name-string</item>
|
||||
<item>chars</item>
|
||||
<item>children</item>
|
||||
<item>chunk</item>
|
||||
<item>chunk-append</item>
|
||||
<item>chunk-buffer</item>
|
||||
<item>chunk-cons</item>
|
||||
<item>chunked-seq?</item>
|
||||
<item>chunk-first</item>
|
||||
<item>chunk-next</item>
|
||||
<item>chunk-rest</item>
|
||||
<item>class</item>
|
||||
<item>class?</item>
|
||||
<item>clear-agent-errors</item>
|
||||
<item>clojure-version</item>
|
||||
<item>coll?</item>
|
||||
<item>collection-tag</item>
|
||||
<item>comment</item>
|
||||
<item>commute</item>
|
||||
<item>comp</item>
|
||||
<item>comparator</item>
|
||||
<item>compare</item>
|
||||
<item>compare-and-set!</item>
|
||||
<item>compile</item>
|
||||
<item>complement</item>
|
||||
<item>compose-fixtures</item>
|
||||
<item>concat</item>
|
||||
<item>cond</item>
|
||||
<item>condp</item>
|
||||
<item>conj</item>
|
||||
<item>conj!</item>
|
||||
<item>cons</item>
|
||||
<item>constantly</item>
|
||||
<item>construct-proxy</item>
|
||||
<item>contains?</item>
|
||||
<item>content</item>
|
||||
<item>content-handler</item>
|
||||
<item>count</item>
|
||||
<item>counted?</item>
|
||||
<item>create-ns</item>
|
||||
<item>create-struct</item>
|
||||
<item>cycle</item>
|
||||
<item>dec</item>
|
||||
<item>dec'</item>
|
||||
<item>decimal?</item>
|
||||
<item>declare</item>
|
||||
<item>delay</item>
|
||||
<item>delay?</item>
|
||||
<item>deliver</item>
|
||||
<item>deref</item>
|
||||
<item>derive</item>
|
||||
<item>descendants</item>
|
||||
<item>destructure</item>
|
||||
<item>difference</item>
|
||||
<item>disj</item>
|
||||
<item>disj!</item>
|
||||
<item>dissoc</item>
|
||||
<item>dissoc!</item>
|
||||
<item>distinct</item>
|
||||
<item>distinct?</item>
|
||||
<item>do</item>
|
||||
<item>doall</item>
|
||||
<item>doc</item>
|
||||
<item>dorun</item>
|
||||
<item>doseq</item>
|
||||
<item>dosync</item>
|
||||
<item>do-template</item>
|
||||
<item>dotimes</item>
|
||||
<item>doto</item>
|
||||
<item>double</item>
|
||||
<item>double-array</item>
|
||||
<item>doubles</item>
|
||||
<item>down</item>
|
||||
<item>drop</item>
|
||||
<item>drop-last</item>
|
||||
<item>drop-while</item>
|
||||
<item>e</item>
|
||||
<item>edit</item>
|
||||
<item>element</item>
|
||||
<item>emit</item>
|
||||
<item>emit-element</item>
|
||||
<item>empty</item>
|
||||
<item>empty?</item>
|
||||
<item>end?</item>
|
||||
<item>ensure</item>
|
||||
<item>enumeration-seq</item>
|
||||
<item>eval</item>
|
||||
<item>even?</item>
|
||||
<item>every?</item>
|
||||
<item>extend</item>
|
||||
<item>extenders</item>
|
||||
<item>extend-protocol</item>
|
||||
<item>extends?</item>
|
||||
<item>extend-type</item>
|
||||
<item>false?</item>
|
||||
<item>ffirst</item>
|
||||
<item>file-position</item>
|
||||
<item>file-seq</item>
|
||||
<item>filter</item>
|
||||
<item>filterv</item>
|
||||
<item>finally</item>
|
||||
<item>find</item>
|
||||
<item>find-doc</item>
|
||||
<item>find-ns</item>
|
||||
<item>find-var</item>
|
||||
<item>first</item>
|
||||
<item>float</item>
|
||||
<item>float?</item>
|
||||
<item>float-array</item>
|
||||
<item>floats</item>
|
||||
<item>flush</item>
|
||||
<item>fn</item>
|
||||
<item>fn?</item>
|
||||
<item>fnext</item>
|
||||
<item>fnil</item>
|
||||
<item>for</item>
|
||||
<item>force</item>
|
||||
<item>format</item>
|
||||
<item>frequencies</item>
|
||||
<item>function?</item>
|
||||
<item>future</item>
|
||||
<item>future?</item>
|
||||
<item>future-call</item>
|
||||
<item>future-cancel</item>
|
||||
<item>future-cancelled?</item>
|
||||
<item>future-done?</item>
|
||||
<item>gen-and-load-class</item>
|
||||
<item>gen-and-save-class</item>
|
||||
<item>gen-class</item>
|
||||
<item>gen-interface</item>
|
||||
<item>gensym</item>
|
||||
<item>get</item>
|
||||
<item>get-child</item>
|
||||
<item>get-child-count</item>
|
||||
<item>get-in</item>
|
||||
<item>get-method</item>
|
||||
<item>get-possibly-unbound-var</item>
|
||||
<item>get-proxy-class</item>
|
||||
<item>get-thread-bindings</item>
|
||||
<item>get-validator</item>
|
||||
<item>group-by</item>
|
||||
<item>handle</item>
|
||||
<item>handler-case</item>
|
||||
<item>hash</item>
|
||||
<item>hash-map</item>
|
||||
<item>hash-set</item>
|
||||
<item>identical?</item>
|
||||
<item>identity</item>
|
||||
<item>if</item>
|
||||
<item>if-let</item>
|
||||
<item>ifn?</item>
|
||||
<item>if-not</item>
|
||||
<item>import</item>
|
||||
<item>inc</item>
|
||||
<item>inc'</item>
|
||||
<item>inc-report-counter</item>
|
||||
<item>index</item>
|
||||
<item>init-proxy</item>
|
||||
<item>in-ns</item>
|
||||
<item>insert-child</item>
|
||||
<item>insert-left</item>
|
||||
<item>insert-right</item>
|
||||
<item>inspect</item>
|
||||
<item>inspect-table</item>
|
||||
<item>inspect-tree</item>
|
||||
<item>instance?</item>
|
||||
<item>int</item>
|
||||
<item>int-array</item>
|
||||
<item>integer?</item>
|
||||
<item>interleave</item>
|
||||
<item>intern</item>
|
||||
<item>interpose</item>
|
||||
<item>intersection</item>
|
||||
<item>into</item>
|
||||
<item>into-array</item>
|
||||
<item>ints</item>
|
||||
<item>io!</item>
|
||||
<item>is</item>
|
||||
<item>isa?</item>
|
||||
<item>is-leaf</item>
|
||||
<item>iterate</item>
|
||||
<item>iterator-seq</item>
|
||||
<item>join</item>
|
||||
<item>join-fixtures</item>
|
||||
<item>juxt</item>
|
||||
<item>key</item>
|
||||
<item>keys</item>
|
||||
<item>keyword</item>
|
||||
<item>keyword?</item>
|
||||
<item>keywordize-keys</item>
|
||||
<item>last</item>
|
||||
<item>lazy-cat</item>
|
||||
<item>lazy-seq</item>
|
||||
<item>left</item>
|
||||
<item>leftmost</item>
|
||||
<item>lefts</item>
|
||||
<item>let</item>
|
||||
<item>letfn</item>
|
||||
<item>line-seq</item>
|
||||
<item>list</item>
|
||||
<item>list*</item>
|
||||
<item>list?</item>
|
||||
<item>list-model</item>
|
||||
<item>list-provider</item>
|
||||
<item>load</item>
|
||||
<item>loaded-libs</item>
|
||||
<item>load-file</item>
|
||||
<item>load-reader</item>
|
||||
<item>load-script</item>
|
||||
<item>load-string</item>
|
||||
<item>locking</item>
|
||||
<item>long</item>
|
||||
<item>long-array</item>
|
||||
<item>longs</item>
|
||||
<item>loop</item>
|
||||
<item>macroexpand</item>
|
||||
<item>macroexpand-1</item>
|
||||
<item>macroexpand-all</item>
|
||||
<item>main</item>
|
||||
<item>make-array</item>
|
||||
<item>make-hierarchy</item>
|
||||
<item>make-node</item>
|
||||
<item>map</item>
|
||||
<item>map?</item>
|
||||
<item>mapcat</item>
|
||||
<item>mapv</item>
|
||||
<item>map-invert</item>
|
||||
<item>max</item>
|
||||
<item>max-key</item>
|
||||
<item>memfn</item>
|
||||
<item>memoize</item>
|
||||
<item>merge</item>
|
||||
<item>merge-with</item>
|
||||
<item>meta</item>
|
||||
<item>methods</item>
|
||||
<item>method-sig</item>
|
||||
<item>min</item>
|
||||
<item>min-key</item>
|
||||
<item>mod</item>
|
||||
<item>name</item>
|
||||
<item>namespace</item>
|
||||
<item>neg?</item>
|
||||
<item>newline</item>
|
||||
<item>next</item>
|
||||
<item>nfirst</item>
|
||||
<item>nil?</item>
|
||||
<item>nnext</item>
|
||||
<item>node</item>
|
||||
<item>not</item>
|
||||
<item>not=</item>
|
||||
<item>not-any?</item>
|
||||
<item>not-empty</item>
|
||||
<item>not-every?</item>
|
||||
<item>ns</item>
|
||||
<item>ns-aliases</item>
|
||||
<item>ns-imports</item>
|
||||
<item>ns-interns</item>
|
||||
<item>ns-map</item>
|
||||
<item>ns-name</item>
|
||||
<item>ns-publics</item>
|
||||
<item>ns-refers</item>
|
||||
<item>ns-resolve</item>
|
||||
<item>ns-unalias</item>
|
||||
<item>ns-unmap</item>
|
||||
<item>nth</item>
|
||||
<item>nthnext</item>
|
||||
<item>num</item>
|
||||
<item>number?</item>
|
||||
<item>odd?</item>
|
||||
<item>or</item>
|
||||
<item>parents</item>
|
||||
<item>partial</item>
|
||||
<item>partition</item>
|
||||
<item>path</item>
|
||||
<item>pcalls</item>
|
||||
<item>peek</item>
|
||||
<item>persistent!</item>
|
||||
<item>pmap</item>
|
||||
<item>pop</item>
|
||||
<item>pop!</item>
|
||||
<item>pop-thread-bindings</item>
|
||||
<item>pos?</item>
|
||||
<item>postwalk</item>
|
||||
<item>postwalk-demo</item>
|
||||
<item>postwalk-replace</item>
|
||||
<item>pr</item>
|
||||
<item>prefer-method</item>
|
||||
<item>prefers</item>
|
||||
<item>prev</item>
|
||||
<item>prewalk</item>
|
||||
<item>prewalk-demo</item>
|
||||
<item>prewalk-replace</item>
|
||||
<item>primitives-classnames</item>
|
||||
<item>print</item>
|
||||
<item>print-cause-trace</item>
|
||||
<item>print-ctor</item>
|
||||
<item>print-doc</item>
|
||||
<item>print-dup</item>
|
||||
<item>printf</item>
|
||||
<item>println</item>
|
||||
<item>println-str</item>
|
||||
<item>print-method</item>
|
||||
<item>print-namespace-doc</item>
|
||||
<item>print-simple</item>
|
||||
<item>print-special-doc</item>
|
||||
<item>print-stack-trace</item>
|
||||
<item>print-str</item>
|
||||
<item>print-throwable</item>
|
||||
<item>print-trace-element</item>
|
||||
<item>prn</item>
|
||||
<item>prn-str</item>
|
||||
<item>project</item>
|
||||
<item>promise</item>
|
||||
<item>proxy</item>
|
||||
<item>proxy-call-with-super</item>
|
||||
<item>proxy-mappings</item>
|
||||
<item>proxy-name</item>
|
||||
<item>proxy-super</item>
|
||||
<item>pr-str</item>
|
||||
<item>push-thread-bindings</item>
|
||||
<item>pvalues</item>
|
||||
<item>quot</item>
|
||||
<item>rand</item>
|
||||
<item>rand-int</item>
|
||||
<item>rand-nth</item>
|
||||
<item>range</item>
|
||||
<item>ratio?</item>
|
||||
<item>rational?</item>
|
||||
<item>rationalize</item>
|
||||
<item>read</item>
|
||||
<item>read-line</item>
|
||||
<item>read-string</item>
|
||||
<item>recur</item>
|
||||
<item>reduce</item>
|
||||
<item>ref</item>
|
||||
<item>refer</item>
|
||||
<item>refer-clojure</item>
|
||||
<item>ref-history-count</item>
|
||||
<item>re-find</item>
|
||||
<item>ref-max-history</item>
|
||||
<item>ref-min-history</item>
|
||||
<item>ref-set</item>
|
||||
<item>re-groups</item>
|
||||
<item>reify</item>
|
||||
<item>release-pending-sends</item>
|
||||
<item>rem</item>
|
||||
<item>re-matcher</item>
|
||||
<item>re-matches</item>
|
||||
<item>remove</item>
|
||||
<item>remove-method</item>
|
||||
<item>remove-ns</item>
|
||||
<item>remove-watch</item>
|
||||
<item>rename</item>
|
||||
<item>rename-keys</item>
|
||||
<item>re-pattern</item>
|
||||
<item>repeat</item>
|
||||
<item>repeatedly</item>
|
||||
<item>repl</item>
|
||||
<item>replace</item>
|
||||
<item>repl-caught</item>
|
||||
<item>repl-exception</item>
|
||||
<item>replicate</item>
|
||||
<item>repl-prompt</item>
|
||||
<item>repl-read</item>
|
||||
<item>report</item>
|
||||
<item>require</item>
|
||||
<item>re-seq</item>
|
||||
<item>reset!</item>
|
||||
<item>reset-meta!</item>
|
||||
<item>resolve</item>
|
||||
<item>rest</item>
|
||||
<item>resultset-seq</item>
|
||||
<item>reverse</item>
|
||||
<item>reversible?</item>
|
||||
<item>right</item>
|
||||
<item>rightmost</item>
|
||||
<item>rights</item>
|
||||
<item>root</item>
|
||||
<item>rseq</item>
|
||||
<item>rsubseq</item>
|
||||
<item>run-all-tests</item>
|
||||
<item>run-tests</item>
|
||||
<item>satisfies?</item>
|
||||
<item>second</item>
|
||||
<item>select</item>
|
||||
<item>select-keys</item>
|
||||
<item>send</item>
|
||||
<item>send-off</item>
|
||||
<item>seq</item>
|
||||
<item>seq?</item>
|
||||
<item>seque</item>
|
||||
<item>sequence</item>
|
||||
<item>sequential?</item>
|
||||
<item>seq-zip</item>
|
||||
<item>set</item>
|
||||
<item>set?</item>
|
||||
<item>set-test</item>
|
||||
<item>set-validator!</item>
|
||||
<item>short</item>
|
||||
<item>short-array</item>
|
||||
<item>shorts</item>
|
||||
<item>shutdown-agents</item>
|
||||
<item>skip-if-eol</item>
|
||||
<item>skip-whitespace</item>
|
||||
<item>slurp</item>
|
||||
<item>some</item>
|
||||
<item>sort</item>
|
||||
<item>sort-by</item>
|
||||
<item>sorted?</item>
|
||||
<item>sorted-map</item>
|
||||
<item>sorted-map-by</item>
|
||||
<item>sorted-set</item>
|
||||
<item>sorted-set-by</item>
|
||||
<item>special-form-anchor</item>
|
||||
<item>special-symbol?</item>
|
||||
<item>split-at</item>
|
||||
<item>split-with</item>
|
||||
<item>str</item>
|
||||
<item>stream?</item>
|
||||
<item>string?</item>
|
||||
<item>stringify-keys</item>
|
||||
<item>struct</item>
|
||||
<item>struct-map</item>
|
||||
<item>subs</item>
|
||||
<item>subseq</item>
|
||||
<item>subvec</item>
|
||||
<item>successful?</item>
|
||||
<item>supers</item>
|
||||
<item>swap!</item>
|
||||
<item>symbol</item>
|
||||
<item>symbol?</item>
|
||||
<item>sync</item>
|
||||
<item>syntax-symbol-anchor</item>
|
||||
<item>take</item>
|
||||
<item>take-last</item>
|
||||
<item>take-nth</item>
|
||||
<item>take-while</item>
|
||||
<item>test</item>
|
||||
<item>test-all-vars</item>
|
||||
<item>testing</item>
|
||||
<item>testing-contexts-str</item>
|
||||
<item>testing-vars-str</item>
|
||||
<item>test-ns</item>
|
||||
<item>test-var</item>
|
||||
<item>the-ns</item>
|
||||
<item>throw</item>
|
||||
<item>time</item>
|
||||
<item>to-array</item>
|
||||
<item>to-array-2d</item>
|
||||
<item>trampoline</item>
|
||||
<item>transient</item>
|
||||
<item>tree-seq</item>
|
||||
<item>true?</item>
|
||||
<item>try</item>
|
||||
<item>try-expr</item>
|
||||
<item>type</item>
|
||||
<item>unchecked-add</item>
|
||||
<item>unchecked-dec</item>
|
||||
<item>unchecked-divide</item>
|
||||
<item>unchecked-inc</item>
|
||||
<item>unchecked-multiply</item>
|
||||
<item>unchecked-negate</item>
|
||||
<item>unchecked-remainder</item>
|
||||
<item>unchecked-subtract</item>
|
||||
<item>underive</item>
|
||||
<item>unimport</item>
|
||||
<item>union</item>
|
||||
<item>unquote</item>
|
||||
<item>unquote-splicing</item>
|
||||
<item>up</item>
|
||||
<item>update</item>
|
||||
<item>update-in</item>
|
||||
<item>update-proxy</item>
|
||||
<item>use</item>
|
||||
<item>use-fixtures</item>
|
||||
<item>val</item>
|
||||
<item>vals</item>
|
||||
<item>var?</item>
|
||||
<item>var-get</item>
|
||||
<item>var-set</item>
|
||||
<item>vary-meta</item>
|
||||
<item>vec</item>
|
||||
<item>vector</item>
|
||||
<item>vector?</item>
|
||||
<item>vector-of</item>
|
||||
<item>walk</item>
|
||||
<item>when</item>
|
||||
<item>when-first</item>
|
||||
<item>when-let</item>
|
||||
<item>when-not</item>
|
||||
<item>while</item>
|
||||
<item>with-bindings</item>
|
||||
<item>with-bindings*</item>
|
||||
<item>with-in-str</item>
|
||||
<item>with-loading-context</item>
|
||||
<item>with-local-vars</item>
|
||||
<item>with-meta</item>
|
||||
<item>with-open</item>
|
||||
<item>with-out-str</item>
|
||||
<item>with-precision</item>
|
||||
<item>with-test</item>
|
||||
<item>with-test-out</item>
|
||||
<item>xml-seq</item>
|
||||
<item>zero?</item>
|
||||
<item>zipmap</item>
|
||||
</list>
|
||||
<list name="variables">
|
||||
<item>*1</item>
|
||||
<item>*2</item>
|
||||
<item>*3</item>
|
||||
<item>*agent*</item>
|
||||
<item>*allow-unresolved-vars*</item>
|
||||
<item>*assert*</item>
|
||||
<item>*clojure-version*</item>
|
||||
<item>*command-line-args*</item>
|
||||
<item>*compile-files*</item>
|
||||
<item>*compile-path*</item>
|
||||
<item>*current*</item>
|
||||
<item>*e</item>
|
||||
<item>*err*</item>
|
||||
<item>*file*</item>
|
||||
<item>*flush-on-newline*</item>
|
||||
<item>*in*</item>
|
||||
<item>*initial-report-counters*</item>
|
||||
<item>*load-tests*</item>
|
||||
<item>*macro-meta*</item>
|
||||
<item>*math-context*</item>
|
||||
<item>*ns*</item>
|
||||
<item>*out*</item>
|
||||
<item>*print-dup*</item>
|
||||
<item>*print-length*</item>
|
||||
<item>*print-level*</item>
|
||||
<item>*print-meta*</item>
|
||||
<item>*print-readably*</item>
|
||||
<item>*read-eval*</item>
|
||||
<item>*report-counters*</item>
|
||||
<item>*sb*</item>
|
||||
<item>*source-path*</item>
|
||||
<item>*stack*</item>
|
||||
<item>*stack-trace-depth*</item>
|
||||
<item>*state*</item>
|
||||
<item>*testing-contexts*</item>
|
||||
<item>*testing-vars*</item>
|
||||
<item>*test-out*</item>
|
||||
<item>*use-context-classloader*</item>
|
||||
<item>*warn-on-reflection*</item>
|
||||
<item>*warn-on-reflection*</item>
|
||||
<item>false</item>
|
||||
<item>nil</item>
|
||||
<item>true</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="Default" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="Comment" context="Comment" char=";"/>
|
||||
<Detect2Chars attribute="Comment" context="#stay" char="#" char1="_"/>
|
||||
<RegExpr attribute="Readermacro" context="#stay" String="#\?@?"/>
|
||||
<RegExpr attribute="Modifier" context="#stay" String="[@~'`][^\s\(\)\{\}\[\]]+|[^\s"\(\)\{\}\[\]]+#"/>
|
||||
<RegExpr attribute="Modifier2" context="#stay" String="::?[a-zA-Z0-9\-\./]+"/>
|
||||
<Detect2Chars attribute="BracketsSet" context="BracketsSet" char="#" char1="{"/>
|
||||
<Detect2Chars attribute="BracketsMeta" context="BracketsMeta" char="^" char1="{"/>
|
||||
<DetectChar attribute="BracketsMap" context="BracketsMap" char="{"/>
|
||||
<AnyChar attribute="Brackets" context="#stay" String="()"/>
|
||||
<AnyChar attribute="BracketsSquare" context="#stay" String="[]"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<RegExpr attribute="Variable" context="#stay" String="#'[^\s\(\)\{\}\[\]]+|%[0-9]*"/>
|
||||
<keyword attribute="Variable" context="#stay" String="variables"/>
|
||||
<keyword attribute="Definition" context="function_decl_documentable" String="documentable_definitions"/>
|
||||
<keyword attribute="Definition" context="function_decl" String="definitions"/>
|
||||
<RegExpr attribute="Char" context="#stay" String="\\u[0-9A-Fa-f]+|\\o[0-7]+|\\backspace|\\formfeed|\\newline|\\space|\\tab|\\[^\s\(\)\{\}\[\]]"/>
|
||||
<Detect2Chars attribute="Regexpr" context="Regexpr" char="#" char1="""/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<RegExpr attribute="Float" context="#stay" String="[0-9]+/[0-9]+"/>
|
||||
<RegExpr attribute="BaseN" context="#stay" String="0[xX][0-9A-Fa-f]+|([12]?[0-9]|3[0-6])[rR][0-9a-zA-Z]+"/>
|
||||
<RegExpr attribute="Error" context="#stay" String="(3[7-9]|[0-9]*[4-9][0-9]+)[rR][0-9a-zA-Z]+"/>
|
||||
<Float attribute="Float" context="Float Suffixes"/>
|
||||
<Int attribute="Decimal" context="Int Suffixes"/>
|
||||
</context>
|
||||
<context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectChar attribute="Float" context="#pop" char="M"/>
|
||||
</context>
|
||||
<context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectChar attribute="Decimal" context="#pop" char="N"/>
|
||||
</context>
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context name="function_decl_documentable" attribute="Function" lineEndContext="#stay">
|
||||
<RegExpr attribute="Function" context="#pop!DocumentationPossible" String="\s*[A-Za-z0-9-+\<\>//\*!\?']*\s*"/>
|
||||
</context>
|
||||
<context name="function_decl" attribute="Function" lineEndContext="#stay">
|
||||
<RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-+\<\>//\*!\?']*\s*"/>
|
||||
</context>
|
||||
<context name="String" attribute="String" lineEndContext="#stay">
|
||||
<RegExpr attribute="Char" context="#stay" String="#\\."/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context name="Regexpr" attribute="Regexpr" lineEndContext="#stay">
|
||||
<RegExpr attribute="Char" context="#stay" String="#\\."/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="Regexpr" context="#pop" char="""/>
|
||||
</context>
|
||||
<context name="DocumentationPossible" attribute="Normal" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectChar attribute="Comment" context="Comment" char=";"/>
|
||||
<DetectChar attribute="Documentation" context="#pop!Documentation" char="""/>
|
||||
</context>
|
||||
<context name="Documentation" attribute="Documentation" lineEndContext="#stay">
|
||||
<RegExpr attribute="Char" context="#stay" String="#\\."/>
|
||||
<HlCStringChar attribute="Char" context="#stay"/>
|
||||
<DetectChar attribute="Documentation" context="#pop" char="""/>
|
||||
</context>
|
||||
<context name="BracketsSet" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="BracketsSet" context="#pop" char="}" />
|
||||
<IncludeRules context="Default" />
|
||||
</context>
|
||||
<context name="BracketsMeta" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="BracketsMeta" context="#pop" char="}" />
|
||||
<DetectChar attribute="Documentation" context="Documentation" char="""/>
|
||||
<IncludeRules context="Default" />
|
||||
</context>
|
||||
<context name="BracketsMap" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="BracketsMap" context="#pop" char="}" />
|
||||
<IncludeRules context="Default" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Modifier" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Modifier2" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
|
||||
<itemData name="Definition" defStyleNum="dsBuiltIn" spellChecking="false"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="BaseN" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Char" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Regexpr" defStyleNum="dsSpecialString"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Documentation" defStyleNum="dsDocumentation"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
<itemData name="Readermacro" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="BracketsSet" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00"/>
|
||||
<itemData name="BracketsMeta" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="1" italic="0"/>
|
||||
<itemData name="BracketsMap" defStyleNum="dsNormal" color="#33ab33" selColor="#219921"/>
|
||||
<itemData name="Brackets" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="1" italic="0"/>
|
||||
<itemData name="BracketsSquare" defStyleNum="dsNormal" color="#3333ff" selColor="#3333aa"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="1" weakDeliminator="-+*?!<>=/:#\"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start=";;"/>
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,749 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!ENTITY div "DATA|ENVIRONMENT|ID|IDENTIFICATION|PROCEDURE">
|
||||
<!ENTITY sec "COMMUNICATION|CONFIGURATION|FILE|INPUT-OUTPUT|LINKAGE|LOCAL-STORAGE|REPORT|SCREEN|WORKING-STORAGE">
|
||||
<!ENTITY seplist "[\s<>+/*$,;():=.]">
|
||||
<!ENTITY picsym "([-+*$ABCDENPRSUVXZ910]+(\([0-9]+\))?)+">
|
||||
]>
|
||||
<language name="COBOL" section="Sources" version="2" kateversion="5.62"
|
||||
extensions="*.cob;*.cbl;*.cpy;*.copy;*.lst;*.pco;*.scb;*.sqb"
|
||||
author="Jonathan Poelen (jonathan.poelen@gmail.com);github.com/MihailJP" license="MIT">
|
||||
<highlighting>
|
||||
|
||||
<list name="picture">
|
||||
<item>PIC</item>
|
||||
<item>PICTURE</item>
|
||||
</list>
|
||||
|
||||
<list name="verbs">
|
||||
<item>ACCEPT</item>
|
||||
<item>ADD</item>
|
||||
<item>ALTER</item>
|
||||
<item>CALL</item>
|
||||
<item>COMPUTE</item>
|
||||
<item>DELETE</item>
|
||||
<item>DISPLAY</item>
|
||||
<item>DIVIDE</item>
|
||||
<item>END-ACCEPT</item>
|
||||
<item>END-ADD</item>
|
||||
<item>END-CALL</item>
|
||||
<item>END-COMPUTE</item>
|
||||
<item>END-DELETE</item>
|
||||
<item>END-DISPLAY</item>
|
||||
<item>END-DIVIDE</item>
|
||||
<item>END-EVALUATE</item>
|
||||
<item>END-IF</item>
|
||||
<item>END-MULTIPLY</item>
|
||||
<item>END-PERFORM</item>
|
||||
<item>END-READ</item>
|
||||
<item>END-RECEIVE</item>
|
||||
<item>END-RETURN</item>
|
||||
<item>END-REWRITE</item>
|
||||
<item>END-SEARCH</item>
|
||||
<item>END-START</item>
|
||||
<item>END-STRING</item>
|
||||
<item>END-SUBTRACT</item>
|
||||
<item>END-UNSTRING</item>
|
||||
<item>END-WRITE</item>
|
||||
<item>EVALUATE</item>
|
||||
<item>IF</item>
|
||||
<item>MULTIPLY</item>
|
||||
<item>PERFORM</item>
|
||||
<item>READ</item>
|
||||
<item>RECEIVE</item>
|
||||
<item>RETURN</item>
|
||||
<item>REWRITE</item>
|
||||
<item>SEARCH</item>
|
||||
<item>START</item>
|
||||
<item>STRING</item>
|
||||
<item>SUBTRACT</item>
|
||||
<item>UNSTRING</item>
|
||||
<item>WRITE</item>
|
||||
<item>ASSIGN</item>
|
||||
<item>CHAIN</item>
|
||||
<item>CLOSE</item>
|
||||
<item>CONTINUE</item>
|
||||
<item>CONTROL</item>
|
||||
<item>COPY</item>
|
||||
<item>COUNT</item>
|
||||
<item>ELSE</item>
|
||||
<item>ENABLE</item>
|
||||
<item>ERASE</item>
|
||||
<item>EXIT</item>
|
||||
<item>GENERATE</item>
|
||||
<item>GO</item>
|
||||
<item>GOBACK</item>
|
||||
<item>IGNORE</item>
|
||||
<item>INITIALIZE</item>
|
||||
<item>INITIATE</item>
|
||||
<item>INSPECT</item>
|
||||
<item>INVOKE</item>
|
||||
<item>MERGE</item>
|
||||
<item>MOVE</item>
|
||||
<item>OPEN</item>
|
||||
<item>RELEASE</item>
|
||||
<item>REPLACE</item>
|
||||
<item>RESERVE</item>
|
||||
<item>RESET</item>
|
||||
<item>REWIND</item>
|
||||
<item>ROLLBACK</item>
|
||||
<item>RUN</item>
|
||||
<item>SELECT</item>
|
||||
<item>SEND</item>
|
||||
<item>SET</item>
|
||||
<item>SORT</item>
|
||||
<item>STOP</item>
|
||||
<item>SUM</item>
|
||||
<item>SUPPRESS</item>
|
||||
<item>TERMINATE</item>
|
||||
<item>THEN</item>
|
||||
<item>TRANSFORM</item>
|
||||
<item>UNLOCK</item>
|
||||
<item>UPDATE</item>
|
||||
<item>USE</item>
|
||||
<item>WAIT</item>
|
||||
<item>WHEN</item>
|
||||
</list>
|
||||
|
||||
<list name="usages">
|
||||
<item>BINARY</item>
|
||||
<item>BINARY-C-LONG</item>
|
||||
<item>BINARY-CHAR</item>
|
||||
<item>BINARY-DOUBLE</item>
|
||||
<item>BINARY-LONG</item>
|
||||
<item>BINARY-SHORT</item>
|
||||
<item>COMP</item>
|
||||
<item>COMP-1</item>
|
||||
<item>COMP-2</item>
|
||||
<item>COMP-3</item>
|
||||
<item>COMP-4</item>
|
||||
<item>COMP-5</item>
|
||||
<item>COMP-X</item>
|
||||
<item>COMPUTATIONAL</item>
|
||||
<item>COMPUTATIONAL-1</item>
|
||||
<item>COMPUTATIONAL-2</item>
|
||||
<item>COMPUTATIONAL-3</item>
|
||||
<item>COMPUTATIONAL-4</item>
|
||||
<item>COMPUTATIONAL-5</item>
|
||||
<item>COMPUTATIONAL-X</item>
|
||||
<item>FLOAT-BINARY-16</item>
|
||||
<item>FLOAT-BINARY-34</item>
|
||||
<item>FLOAT-BINARY-7</item>
|
||||
<item>FLOAT-DECIMAL-16</item>
|
||||
<item>FLOAT-DECIMAL-34</item>
|
||||
<item>FLOAT-EXTENDED</item>
|
||||
<item>FLOAT-LONG</item>
|
||||
<item>FLOAT-SHORT</item>
|
||||
<item>FUNCTION-POINTER</item>
|
||||
<item>INDEX</item>
|
||||
<item>NATIONAL</item>
|
||||
<item>PACKED-DECIMAL</item>
|
||||
<item>POINTER</item>
|
||||
<item>PROCEDURE-POINTER</item>
|
||||
<item>PROGRAM-POINTER</item>
|
||||
<item>SIGNED</item>
|
||||
<item>SIGNED-INT</item>
|
||||
<item>SIGNED-LONG</item>
|
||||
<item>SIGNED-SHORT</item>
|
||||
<item>UNSIGNED</item>
|
||||
<item>UNSIGNED-INT</item>
|
||||
<item>UNSIGNED-LONG</item>
|
||||
<item>UNSIGNED-SHORT</item>
|
||||
</list>
|
||||
|
||||
<list name="keywords">
|
||||
<item>CD</item>
|
||||
<item>COMMUNICATION</item>
|
||||
<item>CONFIGURATION</item>
|
||||
<item>DATA</item>
|
||||
<item>DECLARATIVES</item>
|
||||
<item>DIVISION</item>
|
||||
<item>ENVIRONMENT</item>
|
||||
<item>FD</item>
|
||||
<item>FILE</item>
|
||||
<item>FILE-CONTROL</item>
|
||||
<item>I-O</item>
|
||||
<item>I-O-CONTROL</item>
|
||||
<item>ID</item>
|
||||
<item>IDENTIFICATION</item>
|
||||
<item>INPUT</item>
|
||||
<item>INPUT-OUTPUT</item>
|
||||
<item>LINKAGE</item>
|
||||
<item>LOCAL-STORAGE</item>
|
||||
<item>OUTPUT</item>
|
||||
<item>PROCEDURE</item>
|
||||
<item>PROGRAM</item>
|
||||
<item>RD</item>
|
||||
<item>REPORT</item>
|
||||
<item>REPOSITORY</item>
|
||||
<item>SD</item>
|
||||
<item>SECTION</item>
|
||||
<item>SPECIAL-NAMES</item>
|
||||
<item>WORKING-STORAGE</item>
|
||||
</list>
|
||||
|
||||
<list name="keywords-block">
|
||||
<item>PROGRAM-ID</item>
|
||||
<item>FUNCTION-ID</item>
|
||||
<item>CLASS-ID</item>
|
||||
<item>INTERFACE-ID</item>
|
||||
<item>METHOD-ID</item>
|
||||
<item>FACTORY</item>
|
||||
<item>OBJECT</item>
|
||||
</list>
|
||||
|
||||
<list name="logical">
|
||||
<item>AND</item>
|
||||
<item>EQUAL</item>
|
||||
<item>EQUALS</item>
|
||||
<item>GREATER</item>
|
||||
<item>LESS</item>
|
||||
<item>OR</item>
|
||||
<item>THAN</item>
|
||||
</list>
|
||||
|
||||
<list name="constants">
|
||||
<item>HIGH-VALUEHIGH-VALUES</item>
|
||||
<item>LOW-VALUE</item>
|
||||
<item>LOW-VALUES</item>
|
||||
<item>NULL</item>
|
||||
<item>NULLS</item>
|
||||
<item>QUOTE</item>
|
||||
<item>QUOTES</item>
|
||||
<item>SPACE</item>
|
||||
<item>SPACES</item>
|
||||
<item>ZERO</item>
|
||||
<item>ZEROES</item>
|
||||
<item>ZEROS</item>
|
||||
</list>
|
||||
|
||||
<list name="reserved">
|
||||
<item>ACCESS</item>
|
||||
<item>ACTIVE-CLASS</item>
|
||||
<item>ADDRESS</item>
|
||||
<item>ADVANCING</item>
|
||||
<item>AFTER</item>
|
||||
<item>ALIGNED</item>
|
||||
<item>ALL</item>
|
||||
<item>ALLOCATE</item>
|
||||
<item>ALPHABET</item>
|
||||
<item>ALPHABETIC</item>
|
||||
<item>ALPHABETIC-LOWER</item>
|
||||
<item>ALPHABETIC-UPPER</item>
|
||||
<item>ALPHANUMERIC</item>
|
||||
<item>ALPHANUMERIC-EDITED</item>
|
||||
<item>ALSO</item>
|
||||
<item>ALTERNATE</item>
|
||||
<item>ANY</item>
|
||||
<item>ANYCASE</item>
|
||||
<item>ARE</item>
|
||||
<item>AREA</item>
|
||||
<item>AREAS</item>
|
||||
<item>ARGUMENT-NUMBER</item>
|
||||
<item>ARGUMENT-VALUE</item>
|
||||
<item>ARITHMETIC</item>
|
||||
<item>AS</item>
|
||||
<item>ASCENDING</item>
|
||||
<item>AT</item>
|
||||
<item>ATTRIBUTE</item>
|
||||
<item>AUTO</item>
|
||||
<item>AUTO-SKIP</item>
|
||||
<item>AUTOMATIC</item>
|
||||
<item>AUTOTERMINATE</item>
|
||||
<item>B-AND</item>
|
||||
<item>B-NOT</item>
|
||||
<item>B-OR</item>
|
||||
<item>B-XOR</item>
|
||||
<item>BACKGROUND-COLOR</item>
|
||||
<item>BASED</item>
|
||||
<item>BEEP</item>
|
||||
<item>BEFORE</item>
|
||||
<item>BELL</item>
|
||||
<item>BIT</item>
|
||||
<item>BLANK</item>
|
||||
<item>BLINK</item>
|
||||
<item>BLOCK</item>
|
||||
<item>BOOLEAN</item>
|
||||
<item>BOTTOM</item>
|
||||
<item>BY</item>
|
||||
<item>BYTE-LENGTH</item>
|
||||
<item>CANCEL</item>
|
||||
<item>CENTER</item>
|
||||
<item>CF</item>
|
||||
<item>CH</item>
|
||||
<item>CHAINING</item>
|
||||
<item>CHARACTER</item>
|
||||
<item>CHARACTERS</item>
|
||||
<item>CLASS</item>
|
||||
<item>CLASSIFICATION</item>
|
||||
<item>CODE</item>
|
||||
<item>CODE-SET</item>
|
||||
<item>COL</item>
|
||||
<item>COLLATING</item>
|
||||
<item>COLS</item>
|
||||
<item>COLUMN</item>
|
||||
<item>COLUMNS</item>
|
||||
<item>COMMA</item>
|
||||
<item>COMMAND-LINE</item>
|
||||
<item>COMMIT</item>
|
||||
<item>COMMON</item>
|
||||
<item>CONDITION</item>
|
||||
<item>CONSTANT</item>
|
||||
<item>CONTAINS</item>
|
||||
<item>CONTENT</item>
|
||||
<item>CONTROLS</item>
|
||||
<item>CONVERTING</item>
|
||||
<item>CORR</item>
|
||||
<item>CORRESPONDING</item>
|
||||
<item>CRT</item>
|
||||
<item>CURRENCY</item>
|
||||
<item>CURSOR</item>
|
||||
<item>CYCLE</item>
|
||||
<item>DATA-POINTER</item>
|
||||
<item>DATE</item>
|
||||
<item>DAY</item>
|
||||
<item>DAY-OF-WEEK</item>
|
||||
<item>DE</item>
|
||||
<item>DEBUGGING</item>
|
||||
<item>DECIMAL-POINT</item>
|
||||
<item>DEFAULT</item>
|
||||
<item>DELIMITED</item>
|
||||
<item>DELIMITER</item>
|
||||
<item>DEPENDING</item>
|
||||
<item>DESCENDING</item>
|
||||
<item>DESTINATION</item>
|
||||
<item>DETAIL</item>
|
||||
<item>DISABLE</item>
|
||||
<item>DISK</item>
|
||||
<item>DOWN</item>
|
||||
<item>DUPLICATES</item>
|
||||
<item>DYNAMIC</item>
|
||||
<item>EBCDIC</item>
|
||||
<item>EC</item>
|
||||
<item>EGI</item>
|
||||
<item>EMI</item>
|
||||
<item>END</item>
|
||||
<item>END-OF-PAGE</item>
|
||||
<item>ENTRY</item>
|
||||
<item>ENTRY-CONVENTION</item>
|
||||
<item>ENVIRONMENT-NAME</item>
|
||||
<item>ENVIRONMENT-VALUE</item>
|
||||
<item>EO</item>
|
||||
<item>EOL</item>
|
||||
<item>EOP</item>
|
||||
<item>EOS</item>
|
||||
<item>ERROR</item>
|
||||
<item>ESCAPE</item>
|
||||
<item>ESI</item>
|
||||
<item>EXCEPTION</item>
|
||||
<item>EXCEPTION-OBJECT</item>
|
||||
<item>EXCLUSIVE</item>
|
||||
<item>EXPANDS</item>
|
||||
<item>EXTEND</item>
|
||||
<item>EXTERNAL</item>
|
||||
<item>FALSE</item>
|
||||
<item>FILE-ID</item>
|
||||
<item>FILLER</item>
|
||||
<item>FINAL</item>
|
||||
<item>FIRST</item>
|
||||
<item>FOOTING</item>
|
||||
<item>FOR</item>
|
||||
<item>FOREGROUND-COLOR</item>
|
||||
<item>FOREVER</item>
|
||||
<item>FORMAT</item>
|
||||
<item>FREE</item>
|
||||
<item>FROM</item>
|
||||
<item>FULL</item>
|
||||
<item>GET</item>
|
||||
<item>GIVING</item>
|
||||
<item>GLOBAL</item>
|
||||
<item>GROUP</item>
|
||||
<item>GROUP-USAGE</item>
|
||||
<item>HEADING</item>
|
||||
<item>HIGH-VALUE</item>
|
||||
<item>HIGH-VALUES</item>
|
||||
<item>HIGHLIGHT</item>
|
||||
<item>IGNORING</item>
|
||||
<item>IMPLEMENTS</item>
|
||||
<item>IN</item>
|
||||
<item>INDEXED</item>
|
||||
<item>INDICATE</item>
|
||||
<item>INFINITY</item>
|
||||
<item>INHERITS</item>
|
||||
<item>INITIAL</item>
|
||||
<item>INITIALIZED</item>
|
||||
<item>INTERFACE</item>
|
||||
<item>INTO</item>
|
||||
<item>INTRINSIC</item>
|
||||
<item>INVALID</item>
|
||||
<item>IS</item>
|
||||
<item>JUST</item>
|
||||
<item>JUSTIFIED</item>
|
||||
<item>KEY</item>
|
||||
<item>LABEL</item>
|
||||
<item>LAST</item>
|
||||
<item>LC_ALL</item>
|
||||
<item>LC_COLLATE</item>
|
||||
<item>LC_CTYPE</item>
|
||||
<item>LC_MESSAGES</item>
|
||||
<item>LC_MONETARY</item>
|
||||
<item>LC_NUMERIC</item>
|
||||
<item>LC_TIME</item>
|
||||
<item>LEADING</item>
|
||||
<item>LEFT</item>
|
||||
<item>LENGTH</item>
|
||||
<item>LIMIT</item>
|
||||
<item>LIMITS</item>
|
||||
<item>LINAGE</item>
|
||||
<item>LINAGE-COUNTER</item>
|
||||
<item>LINE</item>
|
||||
<item>LINE-COUNTER</item>
|
||||
<item>LINES</item>
|
||||
<item>LOCALE</item>
|
||||
<item>LOCK</item>
|
||||
<item>LOWLIGHT</item>
|
||||
<item>MANUAL</item>
|
||||
<item>MEMORY</item>
|
||||
<item>MESSAGE</item>
|
||||
<item>METHOD</item>
|
||||
<item>MINUS</item>
|
||||
<item>MODE</item>
|
||||
<item>MULTIPLE</item>
|
||||
<item>NATIONAL-EDITED</item>
|
||||
<item>NATIVE</item>
|
||||
<item>NEGATIVE</item>
|
||||
<item>NESTED</item>
|
||||
<item>NEXT</item>
|
||||
<item>NO</item>
|
||||
<item>NONE</item>
|
||||
<item>NORMAL</item>
|
||||
<item>NOT</item>
|
||||
<item>NUMBER</item>
|
||||
<item>NUMBERS</item>
|
||||
<item>NUMERIC</item>
|
||||
<item>NUMERIC-EDITED</item>
|
||||
<item>OBJECT-COMPUTER</item>
|
||||
<item>OBJECT-REFERENCE</item>
|
||||
<item>OCCURS</item>
|
||||
<item>OF</item>
|
||||
<item>OFF</item>
|
||||
<item>OMITTED</item>
|
||||
<item>ON</item>
|
||||
<item>ONLY</item>
|
||||
<item>OPTIONAL</item>
|
||||
<item>OPTIONS</item>
|
||||
<item>ORDER</item>
|
||||
<item>ORGANIZATION</item>
|
||||
<item>OTHER</item>
|
||||
<item>OVERFLOW</item>
|
||||
<item>OVERLINE</item>
|
||||
<item>OVERRIDE</item>
|
||||
<item>PADDING</item>
|
||||
<item>PAGE</item>
|
||||
<item>PAGE-COUNTER</item>
|
||||
<item>PARAGRAPH</item>
|
||||
<item>PF</item>
|
||||
<item>PH</item>
|
||||
<item>PLUS</item>
|
||||
<item>POSITION</item>
|
||||
<item>POSITIVE</item>
|
||||
<item>PRESENT</item>
|
||||
<item>PREVIOUS</item>
|
||||
<item>PRINTER</item>
|
||||
<item>PRINTING</item>
|
||||
<item>PROCEDURES</item>
|
||||
<item>PROCEED</item>
|
||||
<item>PROMPT</item>
|
||||
<item>PROPERTY</item>
|
||||
<item>PROTOTYPE</item>
|
||||
<item>PURGE</item>
|
||||
<item>QUEUE</item>
|
||||
<item>RAISE</item>
|
||||
<item>RAISING</item>
|
||||
<item>RANDOM</item>
|
||||
<item>RECORD</item>
|
||||
<item>RECORDING</item>
|
||||
<item>RECORDS</item>
|
||||
<item>RECURSIVE</item>
|
||||
<item>REDEFINES</item>
|
||||
<item>REEL</item>
|
||||
<item>REFERENCE</item>
|
||||
<item>RELATION</item>
|
||||
<item>RELATIVE</item>
|
||||
<item>REMAINDER</item>
|
||||
<item>REMOVAL</item>
|
||||
<item>RENAMES</item>
|
||||
<item>REPLACING</item>
|
||||
<item>REPORTING</item>
|
||||
<item>REPORTS</item>
|
||||
<item>REQUIRED</item>
|
||||
<item>RESUME</item>
|
||||
<item>RETRY</item>
|
||||
<item>RETURNING</item>
|
||||
<item>REVERSE-VIDEO</item>
|
||||
<item>RF</item>
|
||||
<item>RH</item>
|
||||
<item>RIGHT</item>
|
||||
<item>ROUNDED</item>
|
||||
<item>SAME</item>
|
||||
<item>SCREEN</item>
|
||||
<item>SCROLL</item>
|
||||
<item>SECONDS</item>
|
||||
<item>SECURE</item>
|
||||
<item>SEGMENT</item>
|
||||
<item>SEGMENT-LIMIT</item>
|
||||
<item>SELF</item>
|
||||
<item>SENTENCE</item>
|
||||
<item>SEPARATE</item>
|
||||
<item>SEQUENCE</item>
|
||||
<item>SEQUENTIAL</item>
|
||||
<item>SHARING</item>
|
||||
<item>SIGN</item>
|
||||
<item>SIZE</item>
|
||||
<item>SORT-MERGE</item>
|
||||
<item>SOURCE</item>
|
||||
<item>SOURCE-COMPUTER</item>
|
||||
<item>SOURCES</item>
|
||||
<item>STANDARD</item>
|
||||
<item>STANDARD-1</item>
|
||||
<item>STANDARD-2</item>
|
||||
<item>STATEMENT</item>
|
||||
<item>STATUS</item>
|
||||
<item>STEP</item>
|
||||
<item>STRONG</item>
|
||||
<item>SUB-QUEUE-1</item>
|
||||
<item>SUB-QUEUE-2</item>
|
||||
<item>SUB-QUEUE-3</item>
|
||||
<item>SUPER</item>
|
||||
<item>SYMBOL</item>
|
||||
<item>SYMBOLIC</item>
|
||||
<item>SYNC</item>
|
||||
<item>SYNCHRONIZED</item>
|
||||
<item>SYSTEM-DEFAULT</item>
|
||||
<item>TABLE</item>
|
||||
<item>TALLYING</item>
|
||||
<item>TAPE</item>
|
||||
<item>TERMINAL</item>
|
||||
<item>TEST</item>
|
||||
<item>TEXT</item>
|
||||
<item>THROUGH</item>
|
||||
<item>THRU</item>
|
||||
<item>TIME</item>
|
||||
<item>TIMES</item>
|
||||
<item>TO</item>
|
||||
<item>TOP</item>
|
||||
<item>TRAILING</item>
|
||||
<item>TRUE</item>
|
||||
<item>TYPE</item>
|
||||
<item>TYPEDEF</item>
|
||||
<item>UCS-4</item>
|
||||
<item>UNDERLINE</item>
|
||||
<item>UNIT</item>
|
||||
<item>UNIVERSAL</item>
|
||||
<item>UNTIL</item>
|
||||
<item>UP</item>
|
||||
<item>UPON</item>
|
||||
<item>USAGE</item>
|
||||
<item>USER-DEFAULT</item>
|
||||
<item>USING</item>
|
||||
<item>UTF-16</item>
|
||||
<item>UTF-8</item>
|
||||
<item>VAL-STATUS</item>
|
||||
<item>VALID</item>
|
||||
<item>VALIDATE</item>
|
||||
<item>VALIDATE-STATUS</item>
|
||||
<item>VALUE</item>
|
||||
<item>VALUES</item>
|
||||
<item>VARYING</item>
|
||||
<item>WITH</item>
|
||||
<item>WORDS</item>
|
||||
<item>YYYYDDD</item>
|
||||
<item>YYYYMMDD</item>
|
||||
</list>
|
||||
|
||||
<list name="functions">
|
||||
<item>ABS</item>
|
||||
<item>ACOS</item>
|
||||
<item>ANNUITY</item>
|
||||
<item>ASIN</item>
|
||||
<item>ATAN</item>
|
||||
<item>BYTE-LENGTH</item>
|
||||
<item>CHAR</item>
|
||||
<item>CONCATENATE</item>
|
||||
<item>COS</item>
|
||||
<item>CURRENT-DATE</item>
|
||||
<item>DATE-OF-INTEGER</item>
|
||||
<item>DATE-TO-YYYYMMDD</item>
|
||||
<item>DAY-OF-INTEGER</item>
|
||||
<item>DAY-TO-YYYYDDD</item>
|
||||
<item>E</item>
|
||||
<item>EXCEPTION-FILE</item>
|
||||
<item>EXCEPTION-LOCATION</item>
|
||||
<item>EXCEPTION-STATEMENT</item>
|
||||
<item>EXCEPTION-STATUS</item>
|
||||
<item>EXP</item>
|
||||
<item>EXP10</item>
|
||||
<item>FACTORIAL</item>
|
||||
<item>FRACTION-PART</item>
|
||||
<item>INTEGER</item>
|
||||
<item>INTEGER-OF-DATE</item>
|
||||
<item>INTEGER-OF-DAY</item>
|
||||
<item>INTEGER-PART</item>
|
||||
<item>LENGTH</item>
|
||||
<item>LOCALE-DATE</item>
|
||||
<item>LOCALE-TIME</item>
|
||||
<item>LOG</item>
|
||||
<item>LOG10</item>
|
||||
<item>LOWER-CASE</item>
|
||||
<item>MAX</item>
|
||||
<item>MEAN</item>
|
||||
<item>MEDIAN</item>
|
||||
<item>MIDRANGE</item>
|
||||
<item>MIN</item>
|
||||
<item>MOD</item>
|
||||
<item>NUMVAL</item>
|
||||
<item>NUMVAL-C</item>
|
||||
<item>ORD</item>
|
||||
<item>ORD-MAX</item>
|
||||
<item>ORD-MIN</item>
|
||||
<item>PI</item>
|
||||
<item>PRESENT-VALUE</item>
|
||||
<item>RANDOM</item>
|
||||
<item>RANGE</item>
|
||||
<item>REM</item>
|
||||
<item>REVERSE</item>
|
||||
<item>SECONDS-FROM-FORMATTED-TIME</item>
|
||||
<item>SECONDS-PAST-MIDNIGHT</item>
|
||||
<item>SIGN</item>
|
||||
<item>SIN</item>
|
||||
<item>SQRT</item>
|
||||
<item>STANDARD-DEVIATION</item>
|
||||
<item>STORED-CHAR-LENGTH</item>
|
||||
<item>SUBSTITUTE</item>
|
||||
<item>SUBSTITUTE-CASE</item>
|
||||
<item>TAN</item>
|
||||
<item>TEST-DATE-YYYYMMDD</item>
|
||||
<item>TEST-DAY-YYYYDDD</item>
|
||||
<item>TRIM</item>
|
||||
<item>UPPER-CASE</item>
|
||||
<item>VARIANCE</item>
|
||||
<item>WHEN-COMPILED</item>
|
||||
<item>YEAR-TO-YYYY</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<Int attribute="Sequence Number Area" firstNonSpace="1"/>
|
||||
<DetectChar attribute="Comment" context="comment" char="*" column="6"/>
|
||||
<DetectChar attribute="Comment" context="comment" char="*" column="0"/>
|
||||
<DetectChar attribute="Comment" context="comment" char="/" column="6"/>
|
||||
<DetectChar attribute="Comment" context="comment" char="/" column="0"/>
|
||||
<DetectChar attribute="String" context="stringDQ" char="""/>
|
||||
<DetectChar attribute="String" context="stringSQ" char="'"/>
|
||||
<StringDetect attribute="Comment" context="comment" String="*>"/>
|
||||
<AnyChar attribute="Normal Text" String="<>+/*$,;():="/>
|
||||
<keyword attribute="Keywords" String="keywords-block" beginRegion="ID"/>
|
||||
<keyword attribute="Other Reserved Words" context="picture" String="picture"/>
|
||||
<keyword attribute="Verb" String="verbs"/>
|
||||
<keyword attribute="Usage" String="usages"/>
|
||||
<keyword attribute="Constant" String="constants"/>
|
||||
<keyword attribute="Logical" String="logical"/>
|
||||
<WordDetect attribute="Keywords" context="end" String="END" insensitive="1"/>
|
||||
<RegExpr attribute="Division" String="\b(?!-)(÷)\s+DIVISION\b(?!-)" insensitive="1"/>
|
||||
<RegExpr attribute="Section" String="\b(?!-)(&sec;)\s+SECTION\b(?!-)" insensitive="1"/>
|
||||
<keyword attribute="Keywords" String="keywords"/>
|
||||
<keyword attribute="Other Reserved Words" String="reserved"/>
|
||||
<WordDetect attribute="Other Reserved Words" context="function" String="FUNCTION" insensitive="1"/>
|
||||
<WordDetect context="exec" String="EXEC" insensitive="1" lookAhead="1"/>
|
||||
<RegExpr attribute="Float" String="(?<=^|\s)-?[0-9]*\.[0-9]+(?=$|&seplist;)" context="#stay"/>
|
||||
<RegExpr attribute="Decimal" String="(?<=^|\s)-?[0-9]+(?=$|&seplist;)" context="#stay"/>
|
||||
<RegExpr attribute="Hex" String="H("[0-9A-F]+"|'[0-9A-F]+')" insensitive="1"/>
|
||||
<RegExpr attribute="Char" String="X("[0-9A-F]+"|'[0-9A-F]+')" insensitive="1"/>
|
||||
<RegExpr attribute="Normal Text" String="[-\w]*[\s<>+$,;():=.]"/>
|
||||
</context>
|
||||
|
||||
<context name="end" attribute="Keywords" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<keyword attribute="Keywords" String="keywords-block" context="#pop" endRegion="ID"/>
|
||||
</context>
|
||||
|
||||
<context name="comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
|
||||
<context name="stringDQ" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
|
||||
<context name="stringSQ" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
</context>
|
||||
|
||||
<context name="picture" attribute="String" lineEndContext="#pop" fallthroughContext="#pop!picture3">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<WordDetect attribute="Other Reserved Words" context="#pop!picture2" String="IS" insensitive="1"/>
|
||||
</context>
|
||||
<context name="picture2" attribute="String" lineEndContext="#pop" fallthroughContext="#pop!picture3">
|
||||
<DetectSpaces attribute="Normal Text" context="#pop!picture3"/>
|
||||
</context>
|
||||
<context name="picture3" attribute="Error" lineEndContext="#pop">
|
||||
<RegExpr attribute="Picture" String="\s*&picsym;([,./]&picsym;)*(CR|DB)?" insensitive="1" context="#pop"/>
|
||||
<AnyChar attribute="Normal Text" context="#pop" String=",./ 	"/>
|
||||
<StringDetect attribute="Comment" context="#pop!comment" String="*>"/>
|
||||
</context>
|
||||
|
||||
<context name="function" attribute="Error" lineEndContext="#pop">
|
||||
<keyword attribute="Function" context="#pop" String="functions"/>
|
||||
<WordDetect attribute="Other Reserved Words" context="#pop" String="ALL" insensitive="1"/>
|
||||
<AnyChar attribute="Normal Text" context="#pop" String=". 	"/>
|
||||
<StringDetect attribute="Comment" context="#pop!comment" String="*>"/>
|
||||
</context>
|
||||
|
||||
<context name="exec" attribute="Normal Text" lineEndContext="#pop">
|
||||
<RegExpr attribute="SQL" String="EXEC\s+SQL\b(?!-)" context="#pop!sql" insensitive="1" beginRegion="sql"/>
|
||||
<DetectIdentifier attribute="Normal Text" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="sql" attribute="Normal Text" lineEndContext="#stay">
|
||||
<StringDetect attribute="Comment" context="comment" String="*>"/>
|
||||
<WordDetect attribute="SQL" context="#pop" String="END-EXEC" insensitive="1" endRegion="sql"/>
|
||||
<IncludeRules context="##SQL" includeAttrib="1"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0"/>
|
||||
<itemData name="Sequence Number Area" defStyleNum="dsComment" spellChecking="0" italic="1"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="0"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="0"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="0"/>
|
||||
<itemData name="Constant" defStyleNum="dsConstant" spellChecking="0"/>
|
||||
<itemData name="Logical" defStyleNum="dsKeyword" spellChecking="0" italic="1"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Char" defStyleNum="dsChar" spellChecking="0"/>
|
||||
<itemData name="Division" defStyleNum="dsRegionMarker" spellChecking="0"/>
|
||||
<itemData name="Section" defStyleNum="dsRegionMarker" spellChecking="0"/>
|
||||
<itemData name="SQL" defStyleNum="dsRegionMarker" spellChecking="0"/>
|
||||
<itemData name="Keywords" defStyleNum="dsKeyword" spellChecking="0"/>
|
||||
<itemData name="Verb" defStyleNum="dsKeyword" spellChecking="0"/>
|
||||
<itemData name="Picture" defStyleNum="dsDataType" spellChecking="0"/>
|
||||
<itemData name="Usage" defStyleNum="dsDataType" spellChecking="0"/>
|
||||
<itemData name="Other Reserved Words" defStyleNum="dsOthers" spellChecking="0"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="0"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="0"/>
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="*>"/>
|
||||
</comments>
|
||||
<keywords casesensitive="0" weakDeliminator="-"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
@@ -0,0 +1,359 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
|
||||
<language name="CoffeeScript"
|
||||
alternativeNames="Coffee;Coffee-Script"
|
||||
version="16"
|
||||
kateversion="5.53"
|
||||
section="Scripts"
|
||||
extensions="Cakefile;*.coffee;*.coco;*.cson"
|
||||
mimetype="text/x-coffeescript;application/x-coffeescript;application/vnd.coffeescript"
|
||||
indenter="python"
|
||||
casesensitive="1"
|
||||
author="Max Shawabkeh (max99x@gmail.com)"
|
||||
license="MIT">
|
||||
<highlighting>
|
||||
<!-- Built-in constants. -->
|
||||
<list name="value_keywords">
|
||||
<item>false</item>
|
||||
<item>true</item>
|
||||
<item>yes</item>
|
||||
<item>no</item>
|
||||
<item>on</item>
|
||||
<item>off</item>
|
||||
<item>undefined</item>
|
||||
<item>null</item>
|
||||
<item>NaN</item>
|
||||
<item>Infinity</item>
|
||||
</list>
|
||||
<!-- Generic keywords. -->
|
||||
<list name="keywords">
|
||||
<item>return</item>
|
||||
<item>break</item>
|
||||
<item>continue</item>
|
||||
<item>throw</item>
|
||||
<item>for</item>
|
||||
<item>while</item>
|
||||
<item>until</item>
|
||||
<item>loop</item>
|
||||
<item>if</item>
|
||||
<item>else</item>
|
||||
<item>unless</item>
|
||||
<item>switch</item>
|
||||
<item>when</item>
|
||||
<item>then</item>
|
||||
<item>and</item>
|
||||
<item>or</item>
|
||||
<item>in</item>
|
||||
<item>do</item>
|
||||
<item>of</item>
|
||||
<item>by</item>
|
||||
<item>is</item>
|
||||
<item>isnt</item>
|
||||
<item>not</item>
|
||||
<item>typeof</item>
|
||||
<item>delete</item>
|
||||
<item>where</item>
|
||||
<item>super</item>
|
||||
<item>try</item>
|
||||
<item>catch</item>
|
||||
<item>finally</item>
|
||||
<item>try</item>
|
||||
<item>catch</item>
|
||||
<item>finally</item>
|
||||
<item>constructor</item>
|
||||
</list>
|
||||
<!-- Keywords which are always followed by a class name. -->
|
||||
<list name="class_keywords">
|
||||
<item>class</item>
|
||||
<item>extends</item>
|
||||
<item>new</item>
|
||||
<item>instanceof</item>
|
||||
</list>
|
||||
<!-- Reserved words. -->
|
||||
<list name="reserved">
|
||||
<item>case</item>
|
||||
<item>default</item>
|
||||
<item>function</item>
|
||||
<item>var</item>
|
||||
<item>void</item>
|
||||
<item>with</item>
|
||||
<item>const</item>
|
||||
<item>let</item>
|
||||
<item>enum</item>
|
||||
<item>export</item>
|
||||
<item>import</item>
|
||||
<item>native</item>
|
||||
<item>__hasProp</item>
|
||||
<item>__extends</item>
|
||||
<item>__slice</item>
|
||||
<item>__bind</item>
|
||||
<item>__indexOf</item>
|
||||
</list>
|
||||
<!-- Built-in globals provided in most contexts. -->
|
||||
<list name="globals">
|
||||
<item>Object</item>
|
||||
<item>Number</item>
|
||||
<item>Boolean</item>
|
||||
<item>Array</item>
|
||||
<item>String</item>
|
||||
<item>RegExp</item>
|
||||
<item>Function</item>
|
||||
<item>Date</item>
|
||||
<item>Math</item>
|
||||
<item>eval</item>
|
||||
<item>setInterval</item>
|
||||
<item>clearInterval</item>
|
||||
<item>setTimeout</item>
|
||||
<item>clearTimeout</item>
|
||||
<item>isFinite</item>
|
||||
<item>isNaN</item>
|
||||
<item>parseFloat</item>
|
||||
<item>parseInt</item>
|
||||
<item>escape</item>
|
||||
<item>unescape</item>
|
||||
<item>console</item>
|
||||
<item>encodeURI</item>
|
||||
<item>encodeURIComponent</item>
|
||||
<item>decodeURI</item>
|
||||
<item>decodeURIComponent</item>
|
||||
</list>
|
||||
<!-- Built-in globals provided in browser context. -->
|
||||
<list name="browser_globals">
|
||||
<item>window</item>
|
||||
<item>document</item>
|
||||
<item>navigator</item>
|
||||
<item>location</item>
|
||||
<item>history</item>
|
||||
<item>screen</item>
|
||||
<item>alert</item>
|
||||
<item>prompt</item>
|
||||
</list>
|
||||
<!-- Built-in globals provided in Node.js context. -->
|
||||
<list name="nodejs_globals">
|
||||
<item>process</item>
|
||||
<item>GLOBAL</item>
|
||||
<item>require</item>
|
||||
<item>exports</item>
|
||||
</list>
|
||||
<!-- Context-sensitive highlighting rules. -->
|
||||
<contexts>
|
||||
<!-- Generic code. -->
|
||||
<context name="Normal" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<!-- Numbers. -->
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<HlCOct attribute="Oct" context="#stay"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<!-- Keywords. -->
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Keyword" context="Class" String="class_keywords"/>
|
||||
<keyword attribute="Value Keywords" context="#stay" String="value_keywords"/>
|
||||
<keyword attribute="Reserved" context="#stay" String="reserved"/>
|
||||
<!-- Globals. -->
|
||||
<keyword attribute="Globals" context="#stay" String="globals"/>
|
||||
<keyword attribute="Browser Globals" context="#stay" String="browser_globals"/>
|
||||
<keyword attribute="Node.js Globals" context="#stay" String="nodejs_globals"/>
|
||||
<!-- Member accessors. -->
|
||||
<RegExpr attribute="Accessor" context="#stay" String="(?:@[_$a-zA-Z][$\w]*|\bthis)\b" insensitive="false"/>
|
||||
<!-- Function definitions. Matches an optional argument list followed by a function arrow (normal or fat). -->
|
||||
<RegExpr attribute="Function" context="#stay" String="(?:\((?:\'[^']*'|"[^"]*"|[^()])*\))?\s*(?:\-|=)>" insensitive="true"/>
|
||||
<!-- Generic identifiers. -->
|
||||
<RegExpr attribute="Identifier" context="#stay" String="[_$a-z][$\w]*\b" insensitive="true"/>
|
||||
<!-- Strings. -->
|
||||
<StringDetect attribute="String" context="Heredoc" String="'''" beginRegion="Heredoc"/>
|
||||
<StringDetect attribute="String" context="Rich Heredoc" String=""""" beginRegion="Rich Heredoc"/>
|
||||
<DetectChar attribute="String" context="String" char="'"/>
|
||||
<DetectChar attribute="String" context="Rich String" char="""/>
|
||||
<!-- Embedded JavaScript. -->
|
||||
<StringDetect attribute="Javascript" context="Javascript Triple Backticks" String="```" beginRegion="Javascript TB"/>
|
||||
<DetectChar attribute="Javascript" context="Javascript" char="`" beginRegion="Javascript"/>
|
||||
<!-- Comments. -->
|
||||
<StringDetect attribute="Comment" context="Multiline Comment" String="###" beginRegion="Comment"/>
|
||||
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
||||
<!-- Regular expressions. -->
|
||||
<StringDetect attribute="Regex" context="Multiline Regex" String="///" beginRegion="Multiline Regex"/>
|
||||
<RegExpr attribute="Regex" context="#stay" String="/(?:[^/\\\r\n]|\\.)*/[mig]{0,3}"/>
|
||||
<!-- Member objects. -->
|
||||
<DetectChar attribute="Symbol" context="Member Object" char="."/>
|
||||
<!-- Operators and other non-alphanumeric symbols. -->
|
||||
<AnyChar attribute="Symbol" context="#stay" String="():!%&+,-/.*<=>?[]|~^;{}"/>
|
||||
</context>
|
||||
<!-- Multiline regular expressions. -->
|
||||
<context name="Multiline Regex" attribute="Regex" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<HlCStringChar attribute="Regex" context="#stay"/>
|
||||
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
||||
<RegExpr attribute="Regex" context="#pop" String="///[mig]{0,3}" endRegion="Multiline Regex"/>
|
||||
</context>
|
||||
<!-- Class names. -->
|
||||
<context name="Class" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<RegExpr attribute="Class" context="#pop" String="[@$:.\w\[\]]+"/>
|
||||
</context>
|
||||
<!-- Member objects. -->
|
||||
<context name="Member Object" attribute="Normal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Identifier" context="#pop" String="\s*[_$a-z][$\w]*" insensitive="true"/>
|
||||
</context>
|
||||
<!-- Comments. -->
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<StringDetect attribute="Comment" context="#pop" String="###" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<!-- Single-line strings. -->
|
||||
<context name="String" attribute="String" lineEndContext="#stay">
|
||||
<IncludeRules context="Escape"/>
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
</context>
|
||||
<context name="Rich String" attribute="String" lineEndContext="#stay">
|
||||
<IncludeRules context="Escape"/>
|
||||
<Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<!-- Multi-line strings. -->
|
||||
<context name="Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<IncludeRules context="Escape"/>
|
||||
<StringDetect attribute="String" context="#pop" String="'''" endRegion="Heredoc"/>
|
||||
</context>
|
||||
<context name="Rich Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<IncludeRules context="Escape"/>
|
||||
<Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>
|
||||
<StringDetect attribute="String" context="#pop" String=""""" endRegion="Rich Heredoc"/>
|
||||
</context>
|
||||
<!-- Escaped characters. -->
|
||||
<context name="Escape" attribute="String" lineEndContext="#stay">
|
||||
<!-- Hexadecimal, unicode & reserved character escape sequences. -->
|
||||
<RegExpr attribute="Escape" context="#stay" String="\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u\{[0-9a-fA-F]+\}|[\\0bfnrtv"'])"/>
|
||||
<!-- Invalid escapes. Octal escape sequences are not allowed. -->
|
||||
<RegExpr attribute="Error" context="#stay" String="\\[ux1-7]"/>
|
||||
<!-- Make any character literal. -->
|
||||
<RegExpr attribute="Literal Character Escape" context="#stay" String="\\."/>
|
||||
<LineContinue attribute="Escape" context="#stay"/>
|
||||
</context>
|
||||
<!-- Expressions embedded in strings. -->
|
||||
<context name="Embedding" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="Embedding" context="#pop" char="}"/>
|
||||
</context>
|
||||
|
||||
<!-- Embedded Javascript (one backtick). -->
|
||||
|
||||
<context name="Javascript" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<DetectChar attribute="Javascript" context="#pop" char="`" endRegion="Javascript"/>
|
||||
<!-- NOTE: This hides errors where a backtick is embedded in a JS string or a comment. -->
|
||||
<IncludeRules context="Overwrite Javascript"/>
|
||||
<IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
|
||||
</context>
|
||||
|
||||
<!-- Allow template strings in JavaScript embedded code (with one backtick). -->
|
||||
<context name="Overwrite Javascript" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<!-- JavaScript Template. -->
|
||||
<Detect2Chars attribute="JavaScript Template" context="Javascript Template" char="\" char1="`" beginRegion="Template"/>
|
||||
<RegExpr context="Javascript StartRawTemplate" String="\b(String)\s*(\.)\s*(raw)\s*\\`" lookAhead="true"/>
|
||||
<!-- Tagged Template Literals -->
|
||||
<RegExpr attribute="JavaScript Function Name" context="#stay" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*(?=\s*\\`)" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\bString\s*\.\s*raw(?=\s*`)" />
|
||||
<RegExpr attribute="Normal" context="#stay" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*(?=\s*`)" />
|
||||
<!-- Contexts of javascript.xml. -->
|
||||
<DetectChar attribute="Normal" context="JavaScript Object" char="{" beginRegion="Brace" />
|
||||
</context>
|
||||
<context name="JavaScript Object" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<DetectChar context="#pop" char="`" lookAhead="true"/>
|
||||
<DetectChar attribute="Normal" context="#pop" char="}" endRegion="Brace"/>
|
||||
<IncludeRules context="Overwrite Javascript"/>
|
||||
<IncludeRules context="Object##JavaScript"/>
|
||||
</context>
|
||||
|
||||
<context name="Javascript Template" attribute="JavaScript Template" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<StringDetect attribute="Escape" context="#stay" String="\\\`"/>
|
||||
<Detect2Chars attribute="JavaScript Template" context="RegExpAfterString##JavaScript" char="\" char1="`" endRegion="Template"/> <!-- End template. -->
|
||||
<DetectChar context="#pop" char="`" lookAhead="true"/>
|
||||
<Detect2Chars attribute="JavaScript Substitution" context="Javascript Substitution" char="$" char1="{"/>
|
||||
<IncludeRules context="Template##JavaScript"/>
|
||||
<RegExpr attribute="Error" context="#stay" String="(?:[^\\\s](?=`)|\S(?=\s+`))"/>
|
||||
</context>
|
||||
<context name="Javascript Substitution" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<DetectChar attribute="Javascript" context="#pop" char="`" lookAhead="true"/>
|
||||
<DetectChar attribute="JavaScript Substitution" context="#pop" char="}"/>
|
||||
<IncludeRules context="Overwrite Javascript"/>
|
||||
<IncludeRules context="Substitution##JavaScript"/>
|
||||
</context>
|
||||
|
||||
<context name="Javascript StartRawTemplate" attribute="JavaScript Template" lineEndContext="#pop" noIndentationBasedFolding="1">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="JavaScript Template" context="#pop!Javascript RawTemplate" char="\" char1="`" beginRegion="Template"/>
|
||||
<StringDetect attribute="JavaScript Built-in Objects" context="#stay" String="%1" dynamic="true"/>
|
||||
<DetectChar attribute="JavaScript Symbol" context="#stay" char="2" dynamic="true"/>
|
||||
<StringDetect attribute="JavaScript Function Name" context="#stay" String="%3" dynamic="true"/>
|
||||
</context>
|
||||
<context name="Javascript RawTemplate" attribute="JavaScript Template" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<Detect2Chars attribute="JavaScript Template" context="#stay" char="\" char1="\"/>
|
||||
<Detect2Chars attribute="JavaScript Template" context="RegExpAfterString##JavaScript" char="\" char1="`" endRegion="Template"/> <!-- End template. -->
|
||||
<DetectChar context="#pop" char="`" lookAhead="true"/>
|
||||
<RegExpr attribute="Error" context="#stay" String="(?:[^\\\s](?=`)|\S(?=\s+`))"/>
|
||||
</context>
|
||||
|
||||
<!-- Embedded Javascript (triple backticks). -->
|
||||
<context name="Javascript Triple Backticks" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<StringDetect attribute="Javascript" context="#pop" String="```" endRegion="Javascript TB"/>
|
||||
<DetectChar attribute="Normal" context="JavaScript-TB Object" char="{" beginRegion="Brace"/>
|
||||
<IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
|
||||
</context>
|
||||
<context name="JavaScript-TB Object" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
|
||||
<StringDetect attribute="Javascript" context="#pop" String="```" lookAhead="true"/>
|
||||
<DetectChar attribute="Normal" context="#pop" char="}" endRegion="Brace"/>
|
||||
<DetectChar attribute="Normal" context="JavaScript-TB Object" char="{" beginRegion="Brace"/>
|
||||
<IncludeRules context="Object##JavaScript"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<!-- Style mappings. -->
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Identifier" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="Oct" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>
|
||||
<itemData name="Symbol" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Embedding" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Accessor" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Class" defStyleNum="dsDataType" spellChecking="false" bold="1"/>
|
||||
<itemData name="Javascript" defStyleNum="dsAlert" spellChecking="false" italic="1"/>
|
||||
<itemData name="Regex" defStyleNum="dsString" spellChecking="false"/>
|
||||
<itemData name="Reserved" defStyleNum="dsAlert" spellChecking="false"/>
|
||||
<itemData name="Value Keywords" defStyleNum="dsOthers" spellChecking="false"/>
|
||||
<itemData name="Globals" defStyleNum="dsOthers" spellChecking="false"/>
|
||||
<!-- Context-sensitive globals - not styled by default. -->
|
||||
<itemData name="Browser Globals" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Node.js Globals" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Escape" defStyleNum="dsSpecialChar" spellChecking="false" />
|
||||
<itemData name="Literal Character Escape" defStyleNum="dsChar" spellChecking="false" />
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
|
||||
<itemData name="JavaScript Template" defStyleNum="dsVerbatimString"/>
|
||||
<itemData name="JavaScript Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>
|
||||
<itemData name="JavaScript Function Name" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="JavaScript Built-in Objects" defStyleNum="dsBuiltIn" spellChecking="false" />
|
||||
<itemData name="JavaScript Symbol" defStyleNum="dsOperator" spellChecking="false" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<!-- Global settings. -->
|
||||
<general>
|
||||
<folding indentationsensitive="1"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" position="afterwhitespace"/>
|
||||
<comment name="multiLine" start="###" end="###" region="Comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1" additionalDeliminator="#'`"/>
|
||||
<emptyLines>
|
||||
<emptyLine regexpr="(?:\s+|\s*#.*)"/>
|
||||
</emptyLines>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,744 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="ColdFusion" version="6" kateversion="5.0" section="Markup" extensions="*.cfm;*.cfc;*.cfml;*.dbm" mimetype="text/x-coldfusion">
|
||||
|
||||
<highlighting>
|
||||
|
||||
<list name="Script Keywords">
|
||||
|
||||
<item>if</item>
|
||||
<item>else</item>
|
||||
<item>for</item>
|
||||
<item>in</item>
|
||||
<item>while</item>
|
||||
<item>do</item>
|
||||
<item>continue</item>
|
||||
<item>break</item>
|
||||
<item>with</item>
|
||||
<item>try</item>
|
||||
<item>catch</item>
|
||||
<item>switch</item>
|
||||
<item>case</item>
|
||||
<item>new</item>
|
||||
<item>var</item>
|
||||
<item>function</item>
|
||||
<item>return</item>
|
||||
<item>this</item>
|
||||
<item>delete</item>
|
||||
<item>true</item>
|
||||
<item>false</item>
|
||||
<item>void</item>
|
||||
<item>throw</item>
|
||||
<item>typeof</item>
|
||||
<item>const</item>
|
||||
<item>default</item>
|
||||
|
||||
</list>
|
||||
|
||||
<list name="Script Objects">
|
||||
|
||||
<item>Anchor</item>
|
||||
<item>Applet</item>
|
||||
<item>Area</item>
|
||||
<item>Array</item>
|
||||
<item>Boolean</item>
|
||||
<item>Button</item>
|
||||
<item>Checkbox</item>
|
||||
<item>Date</item>
|
||||
<item>Document</item>
|
||||
<item>Event</item>
|
||||
<item>FileUpload</item>
|
||||
<item>Form</item>
|
||||
<item>Frame</item>
|
||||
<item>Function</item>
|
||||
<item>Hidden</item>
|
||||
<item>History</item>
|
||||
<item>Image</item>
|
||||
<item>Layer</item>
|
||||
<item>Linke</item>
|
||||
<item>Location</item>
|
||||
<item>Math</item>
|
||||
<item>Navigator</item>
|
||||
<item>Number</item>
|
||||
<item>Object</item>
|
||||
<item>Option</item>
|
||||
<item>Password</item>
|
||||
<item>Radio</item>
|
||||
<item>RegExp</item>
|
||||
<item>Reset</item>
|
||||
<item>Screen</item>
|
||||
<item>Select</item>
|
||||
<item>String</item>
|
||||
<item>Submit</item>
|
||||
<item>Text</item>
|
||||
<item>Textarea</item>
|
||||
<item>Window</item>
|
||||
|
||||
</list>
|
||||
|
||||
<list name="Script Methods">
|
||||
|
||||
<item>abs</item>
|
||||
<item>acos</item>
|
||||
<item>alert</item>
|
||||
<item>anchor</item>
|
||||
<item>apply</item>
|
||||
<item>asin</item>
|
||||
<item>atan</item>
|
||||
<item>atan2</item>
|
||||
<item>back</item>
|
||||
<item>blur</item>
|
||||
<item>call</item>
|
||||
<item>captureEvents</item>
|
||||
<item>ceil</item>
|
||||
<item>charAt</item>
|
||||
<item>charCodeAt</item>
|
||||
<item>clearInterval</item>
|
||||
<item>clearTimeout</item>
|
||||
<item>click</item>
|
||||
<item>close</item>
|
||||
<item>compile</item>
|
||||
<item>concat</item>
|
||||
<item>confirm</item>
|
||||
<item>cos</item>
|
||||
<item>disableExternalCapture</item>
|
||||
<item>enableExternalCapture</item>
|
||||
<item>eval</item>
|
||||
<item>exec</item>
|
||||
<item>exp</item>
|
||||
<item>find</item>
|
||||
<item>floor</item>
|
||||
<item>focus</item>
|
||||
<item>forward</item>
|
||||
<item>fromCharCode</item>
|
||||
<item>getDate</item>
|
||||
<item>getDay</item>
|
||||
<item>getFullYear</item>
|
||||
<item>getHours</item>
|
||||
<item>getMilliseconds</item>
|
||||
<item>getMinutes</item>
|
||||
<item>getMonth</item>
|
||||
<item>getSeconds</item>
|
||||
<item>getSelection</item>
|
||||
<item>getTime</item>
|
||||
<item>getTimezoneOffset</item>
|
||||
<item>getUTCDate</item>
|
||||
<item>getUTCDay</item>
|
||||
<item>getUTCFullYear</item>
|
||||
<item>getUTCHours</item>
|
||||
<item>getUTCMilliseconds</item>
|
||||
<item>getUTCMinutes</item>
|
||||
<item>getUTCMonth</item>
|
||||
<item>getUTCSeconds</item>
|
||||
<item>go</item>
|
||||
<item>handleEvent</item>
|
||||
<item>home</item>
|
||||
<item>indexOf</item>
|
||||
<item>javaEnabled</item>
|
||||
<item>join</item>
|
||||
<item>lastIndexOf</item>
|
||||
<item>link</item>
|
||||
<item>load</item>
|
||||
<item>log</item>
|
||||
<item>match</item>
|
||||
<item>max</item>
|
||||
<item>min</item>
|
||||
<item>moveAbove</item>
|
||||
<item>moveBelow</item>
|
||||
<item>moveBy</item>
|
||||
<item>moveTo</item>
|
||||
<item>moveToAbsolute</item>
|
||||
<item>open</item>
|
||||
<item>parse</item>
|
||||
<item>plugins.refresh</item>
|
||||
<item>pop</item>
|
||||
<item>pow</item>
|
||||
<item>preference</item>
|
||||
<item>print</item>
|
||||
<item>prompt</item>
|
||||
<item>push</item>
|
||||
<item>random</item>
|
||||
<item>releaseEvents</item>
|
||||
<item>reload</item>
|
||||
<item>replace</item>
|
||||
<item>reset</item>
|
||||
<item>resizeBy</item>
|
||||
<item>resizeTo</item>
|
||||
<item>reverse</item>
|
||||
<item>round</item>
|
||||
<item>routeEvent</item>
|
||||
<item>scrollBy</item>
|
||||
<item>scrollTo</item>
|
||||
<item>search</item>
|
||||
<item>select</item>
|
||||
<item>setDate</item>
|
||||
<item>setFullYear</item>
|
||||
<item>setHours</item>
|
||||
<item>setInterval</item>
|
||||
<item>setMilliseconds</item>
|
||||
<item>setMinutes</item>
|
||||
<item>setMonth</item>
|
||||
<item>setSeconds</item>
|
||||
<item>setTime</item>
|
||||
<item>setTimeout</item>
|
||||
<item>setUTCDate</item>
|
||||
<item>setUTCFullYear</item>
|
||||
<item>setUTCHours</item>
|
||||
<item>setUTCMilliseconds</item>
|
||||
<item>setUTCMinutes</item>
|
||||
<item>setUTCMonth</item>
|
||||
<item>setUTCSeconds</item>
|
||||
<item>shift</item>
|
||||
<item>sin</item>
|
||||
<item>slice</item>
|
||||
<item>sort</item>
|
||||
<item>splice</item>
|
||||
<item>split</item>
|
||||
<item>sqrt</item>
|
||||
<item>stop</item>
|
||||
<item>submit</item>
|
||||
<item>substr</item>
|
||||
<item>substring</item>
|
||||
<item>taintEnabled</item>
|
||||
<item>tan</item>
|
||||
<item>test</item>
|
||||
<item>toLocaleString</item>
|
||||
<item>toLowerCase</item>
|
||||
<item>toSource</item>
|
||||
<item>toString</item>
|
||||
<item>toUpperCase</item>
|
||||
<item>toUTCString</item>
|
||||
<item>unshift</item>
|
||||
<item>unwatch</item>
|
||||
<item>UTC</item>
|
||||
<item>valueOf</item>
|
||||
<item>watch</item>
|
||||
<item>write</item>
|
||||
<item>writeln</item>
|
||||
|
||||
</list>
|
||||
|
||||
<list name="CFSCRIPT Keywords">
|
||||
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>catch</item>
|
||||
<item>continue</item>
|
||||
<item>default</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>for</item>
|
||||
<item>function</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>return</item>
|
||||
<item>switch</item>
|
||||
<item>try</item>
|
||||
<item>var</item>
|
||||
<item>while</item>
|
||||
|
||||
</list>
|
||||
|
||||
<list name="CFSCRIPT Functions">
|
||||
|
||||
<item>Abs</item>
|
||||
<item>ACos</item>
|
||||
<item>ArrayAppend</item>
|
||||
<item>ArrayAvg</item>
|
||||
<item>ArrayClear</item>
|
||||
<item>ArrayDeleteAt</item>
|
||||
<item>ArrayInsertAt</item>
|
||||
<item>ArrayIsEmpty</item>
|
||||
<item>ArrayLen</item>
|
||||
<item>ArrayMax</item>
|
||||
<item>ArrayMin</item>
|
||||
<item>ArrayNew</item>
|
||||
<item>ArrayPrepend</item>
|
||||
<item>ArrayResize</item>
|
||||
<item>ArraySet</item>
|
||||
<item>ArraySort</item>
|
||||
<item>ArraySum</item>
|
||||
<item>ArraySwap</item>
|
||||
<item>ArrayToList</item>
|
||||
<item>Asc</item>
|
||||
<item>ASin</item>
|
||||
<item>Atn</item>
|
||||
<item>BitAnd</item>
|
||||
<item>BitMaskClear</item>
|
||||
<item>BitMaskRead</item>
|
||||
<item>BitMaskSet</item>
|
||||
<item>BitNot</item>
|
||||
<item>BitOr</item>
|
||||
<item>BitSHLN</item>
|
||||
<item>BitSHRN</item>
|
||||
<item>BitXor</item>
|
||||
<item>Ceiling</item>
|
||||
<item>Chr</item>
|
||||
<item>CJustify</item>
|
||||
<item>Compare</item>
|
||||
<item>CompareNoCase</item>
|
||||
<item>Cos</item>
|
||||
<item>CreateDate</item>
|
||||
<item>CreateDateTime</item>
|
||||
<item>CreateObject</item>
|
||||
<item>CreateODBCDate</item>
|
||||
<item>CreateODBCDateTime</item>
|
||||
<item>CreateODBCTime</item>
|
||||
<item>CreateTime</item>
|
||||
<item>CreateTimeSpan</item>
|
||||
<item>CreateUUID</item>
|
||||
<item>DateAdd</item>
|
||||
<item>DateCompare</item>
|
||||
<item>DateConvert</item>
|
||||
<item>DateDiff</item>
|
||||
<item>DateFormat</item>
|
||||
<item>DatePart</item>
|
||||
<item>Day</item>
|
||||
<item>DayOfWeek</item>
|
||||
<item>DayOfWeekAsString</item>
|
||||
<item>DayOfYear</item>
|
||||
<item>DaysInMonth</item>
|
||||
<item>DaysInYear</item>
|
||||
<item>DE</item>
|
||||
<item>DecimalFormat</item>
|
||||
<item>DecrementValue</item>
|
||||
<item>Decrypt</item>
|
||||
<item>DeleteClientVariable</item>
|
||||
<item>DirectoryExists</item>
|
||||
<item>DollarFormat</item>
|
||||
<item>Duplicate</item>
|
||||
<item>Encrypt</item>
|
||||
<item>Evaluate</item>
|
||||
<item>Exp</item>
|
||||
<item>ExpandPath</item>
|
||||
<item>FileExists</item>
|
||||
<item>Find</item>
|
||||
<item>FindNoCase</item>
|
||||
<item>FindOneOf</item>
|
||||
<item>FirstDayOfMonth</item>
|
||||
<item>Fix</item>
|
||||
<item>FormatBaseN</item>
|
||||
<item>GetAuthUser</item>
|
||||
<item>GetBaseTagData</item>
|
||||
<item>GetBaseTagList</item>
|
||||
<item>GetBaseTemplatePath</item>
|
||||
<item>GetClientVariablesList</item>
|
||||
<item>GetCurrentTemplatePath</item>
|
||||
<item>GetDirectoryFromPath</item>
|
||||
<item>GetException</item>
|
||||
<item>GetFileFromPath</item>
|
||||
<item>GetFunctionList</item>
|
||||
<item>GetHttpRequestData</item>
|
||||
<item>GetHttpTimeString</item>
|
||||
<item>GetK2ServerDocCount</item>
|
||||
<item>GetK2ServerDocCountLimit</item>
|
||||
<item>GetLocale</item>
|
||||
<item>GetMetaData</item>
|
||||
<item>GetMetricData</item>
|
||||
<item>GetPageContext</item>
|
||||
<item>GetProfileSections</item>
|
||||
<item>GetProfileString</item>
|
||||
<item>GetServiceSettings</item>
|
||||
<item>GetTempDirectory</item>
|
||||
<item>GetTempFile</item>
|
||||
<item>GetTemplatePath</item>
|
||||
<item>GetTickCount</item>
|
||||
<item>GetTimeZoneInfo</item>
|
||||
<item>GetToken</item>
|
||||
<item>Hash</item>
|
||||
<item>Hour</item>
|
||||
<item>HTMLCodeFormat</item>
|
||||
<item>HTMLEditFormat</item>
|
||||
<item>IIf</item>
|
||||
<item>IncrementValue</item>
|
||||
<item>InputBaseN</item>
|
||||
<item>Insert</item>
|
||||
<item>Int</item>
|
||||
<item>IsArray</item>
|
||||
<item>IsBinary</item>
|
||||
<item>IsBoolean</item>
|
||||
<item>IsCustomFunction</item>
|
||||
<item>IsDate</item>
|
||||
<item>IsDebugMode</item>
|
||||
<item>IsDefined</item>
|
||||
<item>IsK2ServerABroker</item>
|
||||
<item>IsK2ServerDocCountExceeded</item>
|
||||
<item>IsK2ServerOnline</item>
|
||||
<item>IsLeapYear</item>
|
||||
<item>IsNumeric</item>
|
||||
<item>IsNumericDate</item>
|
||||
<item>IsObject</item>
|
||||
<item>IsQuery</item>
|
||||
<item>IsSimpleValue</item>
|
||||
<item>IsStruct</item>
|
||||
<item>IsUserInRole</item>
|
||||
<item>IsWDDX</item>
|
||||
<item>IsXmlDoc</item>
|
||||
<item>IsXmlElement</item>
|
||||
<item>IsXmlRoot</item>
|
||||
<item>JavaCast</item>
|
||||
<item>JSStringFormat</item>
|
||||
<item>LCase</item>
|
||||
<item>Left</item>
|
||||
<item>Len</item>
|
||||
<item>ListAppend</item>
|
||||
<item>ListChangeDelims</item>
|
||||
<item>ListContains</item>
|
||||
<item>ListContainsNoCase</item>
|
||||
<item>ListDeleteAt</item>
|
||||
<item>ListFind</item>
|
||||
<item>ListFindNoCase</item>
|
||||
<item>ListFirst</item>
|
||||
<item>ListGetAt</item>
|
||||
<item>ListInsertAt</item>
|
||||
<item>ListLast</item>
|
||||
<item>ListLen</item>
|
||||
<item>ListPrepend</item>
|
||||
<item>ListQualify</item>
|
||||
<item>ListRest</item>
|
||||
<item>ListSetAt</item>
|
||||
<item>ListSort</item>
|
||||
<item>ListToArray</item>
|
||||
<item>ListValueCount</item>
|
||||
<item>ListValueCountNoCase</item>
|
||||
<item>LJustify</item>
|
||||
<item>Log</item>
|
||||
<item>Log10</item>
|
||||
<item>LSCurrencyFormat</item>
|
||||
<item>LSDateFormat</item>
|
||||
<item>LSEuroCurrencyFormat</item>
|
||||
<item>LSIsCurrency</item>
|
||||
<item>LSIsDate</item>
|
||||
<item>LSIsNumeric</item>
|
||||
<item>LSNumberFormat</item>
|
||||
<item>LSParseCurrency</item>
|
||||
<item>LSParseDateTime</item>
|
||||
<item>LSParseEuroCurrency</item>
|
||||
<item>LSParseNumber</item>
|
||||
<item>LSTimeFormat</item>
|
||||
<item>LTrim</item>
|
||||
<item>Max</item>
|
||||
<item>Mid</item>
|
||||
<item>Min</item>
|
||||
<item>Minute</item>
|
||||
<item>Month</item>
|
||||
<item>MonthAsString</item>
|
||||
<item>Now</item>
|
||||
<item>NumberFormat</item>
|
||||
<item>ParagraphFormat</item>
|
||||
<item>ParameterExists</item>
|
||||
<item>ParseDateTime</item>
|
||||
<item>Pi</item>
|
||||
<item>PreserveSingleQuotes</item>
|
||||
<item>Quarter</item>
|
||||
<item>QueryAddColumn</item>
|
||||
<item>QueryAddRow</item>
|
||||
<item>QueryNew</item>
|
||||
<item>QuerySetCell</item>
|
||||
<item>QuotedValueList</item>
|
||||
<item>Rand</item>
|
||||
<item>Randomize</item>
|
||||
<item>RandRange</item>
|
||||
<item>REFind</item>
|
||||
<item>REFindNoCase</item>
|
||||
<item>RemoveChars</item>
|
||||
<item>RepeatString</item>
|
||||
<item>Replace</item>
|
||||
<item>ReplaceList</item>
|
||||
<item>ReplaceNoCase</item>
|
||||
<item>REReplace</item>
|
||||
<item>REReplaceNoCase</item>
|
||||
<item>Reverse</item>
|
||||
<item>Right</item>
|
||||
<item>RJustify</item>
|
||||
<item>Round</item>
|
||||
<item>RTrim</item>
|
||||
<item>Second</item>
|
||||
<item>SetEncoding</item>
|
||||
<item>SetLocale</item>
|
||||
<item>SetProfileString</item>
|
||||
<item>SetVariable</item>
|
||||
<item>Sgn</item>
|
||||
<item>Sin</item>
|
||||
<item>SpanExcluding</item>
|
||||
<item>SpanIncluding</item>
|
||||
<item>Sqr</item>
|
||||
<item>StripCR</item>
|
||||
<item>StructAppend</item>
|
||||
<item>StructClear</item>
|
||||
<item>StructCopy</item>
|
||||
<item>StructCount</item>
|
||||
<item>StructDelete</item>
|
||||
<item>StructFind</item>
|
||||
<item>StructFindKey</item>
|
||||
<item>StructFindValue</item>
|
||||
<item>StructGet</item>
|
||||
<item>StructInsert</item>
|
||||
<item>StructIsEmpty</item>
|
||||
<item>StructKeyArray</item>
|
||||
<item>StructKeyExists</item>
|
||||
<item>StructKeyList</item>
|
||||
<item>StructNew</item>
|
||||
<item>StructSort</item>
|
||||
<item>StructUpdate</item>
|
||||
<item>Tan</item>
|
||||
<item>TimeFormat</item>
|
||||
<item>ToBase64</item>
|
||||
<item>ToBinary</item>
|
||||
<item>ToString</item>
|
||||
<item>Trim</item>
|
||||
<item>UCase</item>
|
||||
<item>URLDecode</item>
|
||||
<item>URLEncodedFormat</item>
|
||||
<item>URLSessionFormat</item>
|
||||
<item>Val</item>
|
||||
<item>ValueList</item>
|
||||
<item>Week</item>
|
||||
<item>WriteOutput</item>
|
||||
<item>XmlChildPos</item>
|
||||
<item>XmlElemNew</item>
|
||||
<item>XmlFormat</item>
|
||||
<item>XmlNew</item>
|
||||
<item>XmlParse</item>
|
||||
<item>XmlSearch</item>
|
||||
<item>XmlTransform</item>
|
||||
<item>Year</item>
|
||||
<item>YesNoFormat</item>
|
||||
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
|
||||
<DetectSpaces attribute="Normal Text" />
|
||||
<StringDetect attribute="CF Comment" context="ctxCF Comment" String="<!---" beginRegion="CF Comment" />
|
||||
<StringDetect attribute="HTML Comment" context="ctxHTML Comment" String="<!--" beginRegion="HTML Comment" />
|
||||
<StringDetect attribute="Script Tags" context="ctxCFSCRIPT Tag" String="<cfscript" insensitive="true" beginRegion="CF Script" />
|
||||
<StringDetect attribute="Script Tags" context="ctxSCRIPT Tag" String="<script" insensitive="true" beginRegion="Script" />
|
||||
<StringDetect attribute="Style Tags" context="ctxSTYLE Tag" String="<style" insensitive="true" beginRegion="Style" />
|
||||
<DetectChar attribute="HTML Entities" context="ctxHTML Entities" char="&" />
|
||||
<StringDetect attribute="Custom Tags" context="ctxCustom Tag" String="<cf_" insensitive="true" />
|
||||
<StringDetect attribute="Custom Tags" context="ctxCustom Tag" String="</cf_" insensitive="true" />
|
||||
<StringDetect attribute="CFX Tags" context="ctxCFX Tag" String="<cfx_" insensitive="true" />
|
||||
<StringDetect attribute="CFX Tags" context="ctxCFX Tag" String="</cfx_" insensitive="true" />
|
||||
<StringDetect attribute="CF Tags" context="ctxCF Tag" String="<cf" insensitive="true" />
|
||||
<StringDetect attribute="CF Tags" context="ctxCF Tag" String="</cf" insensitive="true" />
|
||||
<RegExpr attribute="Table Tags" context="ctxTable Tag" String="<\/?(?:[tT][aAhHbBfFrRdD])|(?:[cC][aA][pP][tT])" />
|
||||
<RegExpr attribute="Anchor Tags" context="ctxAnchor Tag" String="<\/?a(?=[>\s]|$)" insensitive="true" />
|
||||
<RegExpr attribute="Image Tags" context="ctxImage Tag" String="<\/?img(?=[>\s]|$)" insensitive="true" />
|
||||
<StringDetect attribute="Anchor Tags" context="#stay" String="<a/>" insensitive="true" />
|
||||
<StringDetect attribute="Image Tags" context="#stay" String="<img/>" insensitive="true" />
|
||||
<RegExpr attribute="Tags" context="ctxTag" String="<!?\/?[a-zA-Z0-9_]+" />
|
||||
</context>
|
||||
|
||||
|
||||
<context name="Tag Content" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Normal Text" context="#stay" char="=" />
|
||||
<RangeDetect attribute="Attribute Values" context="#stay" char=""" char1=""" />
|
||||
<RangeDetect attribute="Attribute Values" context="#stay" char="'" char1="'" />
|
||||
<RegExpr attribute="Tag Attributes" context="#stay" String="(?:\s|^)[A-Za-z_:*][\w.:_-]*(?=\s*\=)" />
|
||||
</context>
|
||||
|
||||
<context name="ctxCFSCRIPT Tag" attribute="Script Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Script Tags" context="ctxCFSCRIPT Block" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxSCRIPT Tag" attribute="Script Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Script Tags" context="ctxSCRIPT Block" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxSTYLE Tag" attribute="Style Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Style Tags" context="ctxSTYLE Block" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<context name="ctxTag" attribute="Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Tags" context="#pop" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxTable Tag" attribute="Table Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Table Tags" context="#pop" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxAnchor Tag" attribute="Anchor Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Anchor Tags" context="#pop" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxImage Tag" attribute="Image Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Image Tags" context="#pop" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxCF Tag" attribute="CF Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="CF Tags" context="#pop" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxCustom Tag" attribute="Custom Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="Custom Tags" context="#pop" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
<context name="ctxCFX Tag" attribute="CFX Tags" lineEndContext="#stay">
|
||||
<DetectChar attribute="CFX Tags" context="#pop" char=">" />
|
||||
<IncludeRules context="Tag Content" />
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<context name="ctxHTML Comment" attribute="HTML Comment" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="HTML Comment" />
|
||||
<StringDetect attribute="CF Comment" context="ctxCF Comment" String="<!---" beginRegion="CF Comment" />
|
||||
<StringDetect attribute="HTML Comment" context="#pop" String="-->" endRegion="HTML Comment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier attribute="HTML Comment" />
|
||||
</context>
|
||||
|
||||
<context name="ctxCF Comment" attribute="CF Comment" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="CF Comment" />
|
||||
<StringDetect attribute="CF Comment" context="#pop" String="--->" endRegion="CF Comment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier attribute="CF Comment" />
|
||||
</context>
|
||||
|
||||
<context name="ctxC Style Comment" attribute="Script Comment" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Script Comment" />
|
||||
<Detect2Chars attribute="Script Comment" context="#pop" char="*" char1="/" endRegion="CComment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier attribute="Script Comment" />
|
||||
</context>
|
||||
|
||||
<context name="ctxOne Line Comment" attribute="Script Comment" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Script Comment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier attribute="Script Comment" />
|
||||
</context>
|
||||
|
||||
<context name="ctxHTML Entities" attribute="HTML Entities" lineEndContext="#pop">
|
||||
<DetectChar attribute="HTML Entities" context="#pop" char=";" />
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<context name="SCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Normal Text" />
|
||||
<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" beginRegion="CComment" />
|
||||
<Detect2Chars attribute="Script Comment" context="ctxOne Line Comment" char="/" char1="/" />
|
||||
<RangeDetect attribute="Script Strings" context="#stay" char=""" char1=""" />
|
||||
<RangeDetect attribute="Script Strings" context="#stay" char="'" char1="'" />
|
||||
<Float attribute="Script Numbers" context="#stay" />
|
||||
<Int attribute="Script Numbers" context="#stay" />
|
||||
<AnyChar attribute="Script Operators" context="#stay" String="()[]=+-*/" />
|
||||
<AnyChar attribute="Brackets" context="#stay" String="{}" />
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<context name="ctxCFSCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
|
||||
<IncludeRules context="SCRIPT Block" />
|
||||
|
||||
<keyword attribute="Script Keywords" context="#stay" String="CFSCRIPT Keywords" />
|
||||
<keyword attribute="Script Functions" context="#stay" String="CFSCRIPT Functions" />
|
||||
<StringDetect attribute="Script Tags" context="#pop#pop" String="</cfscript>" insensitive="true" endRegion="CF Script" />
|
||||
<DetectIdentifier attribute="Normal Text" />
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<context name="ctxSCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
|
||||
<IncludeRules context="SCRIPT Block" />
|
||||
|
||||
<keyword attribute="Script Keywords" context="#stay" String="Script Keywords" />
|
||||
<keyword attribute="Script Objects" context="#stay" String="Script Objects" />
|
||||
<keyword attribute="Script Functions" context="#stay" String="Script Methods" />
|
||||
<StringDetect attribute="Script Tags" context="#pop#pop" String="</script>" insensitive="true" endRegion="Script" />
|
||||
<DetectIdentifier attribute="Normal Text" />
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<context name="ctxSTYLE Block" attribute="Style Selectors" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Style Selectors" />
|
||||
<DetectIdentifier attribute="Style Selectors" />
|
||||
<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" beginRegion="CComment" />
|
||||
<DetectChar attribute="Brackets" context="ctxStyle Properties" char="{" />
|
||||
<StringDetect attribute="Style Tags" context="#pop#pop" String="</style>" insensitive="true" endRegion="Style" />
|
||||
</context>
|
||||
|
||||
<context name="ctxStyle Properties" attribute="Style Properties" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Style Properties" />
|
||||
<DetectIdentifier attribute="Style Properties" />
|
||||
<DetectChar attribute="Brackets" context="#pop" char="}" />
|
||||
<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" beginRegion="CComment" />
|
||||
<DetectChar attribute="Normal Text" context="ctxStyle Values" char=":" />
|
||||
</context>
|
||||
|
||||
<context name="ctxStyle Values" attribute="Style Values" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Style Values" />
|
||||
<DetectIdentifier attribute="Style Values" />
|
||||
<DetectChar attribute="Normal Text" context="#pop" char=";" />
|
||||
<DetectChar attribute="Normal Text" context="#stay" char="," />
|
||||
<Float attribute="Numbers" context="#stay" />
|
||||
<Int attribute="Numbers" context="#stay" />
|
||||
<RangeDetect attribute="Attribute Values" context="#stay" char=""" char1=""" />
|
||||
<RangeDetect attribute="Attribute Values" context="#stay" char="'" char1="'" />
|
||||
<RegExpr attribute="Numbers" context="#stay" String="#(?:[0-9a-fA-F]{8}|[0-9a-fA-F]{6}|[0-9a-fA-F]{3})" />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="Tags" defStyleNum="dsKeyword" spellChecking="false"/> <!-- #000080 -->
|
||||
<itemData name="Table Tags" defStyleNum="dsVariable" bold="1" spellChecking="false" /> <!-- #008080 -->
|
||||
<itemData name="Script Tags" defStyleNum="dsWarning" bold="1" spellChecking="false" /> <!-- #800000 -->
|
||||
<itemData name="Image Tags" defStyleNum="dsInformation" bold="1" spellChecking="false" /> <!-- #800080 -->
|
||||
<itemData name="Style Tags" defStyleNum="dsInformation" bold="1" spellChecking="false" /> <!-- #800080 -->
|
||||
<itemData name="Anchor Tags" defStyleNum="dsPreprocessor" bold="1" spellChecking="false" /> <!-- #008000 -->
|
||||
<itemData name="Tag Attributes" defStyleNum="dsOthers" spellChecking="false"/>
|
||||
<itemData name="Attribute Values" defStyleNum="dsString" /> <!-- #0000ff -->
|
||||
<itemData name="HTML Comment" defStyleNum="dsComment" /> <!-- #008000 -->
|
||||
<itemData name="CF Comment" defStyleNum="dsComment" /> <!-- #ff9900 -->
|
||||
<itemData name="Script Comment" defStyleNum="dsComment" /> <!-- #ff9900 -->
|
||||
<itemData name="CF Tags" defStyleNum="dsFunction" bold="1" spellChecking="false" /> <!-- #800000 -->
|
||||
<itemData name="Custom Tags" defStyleNum="dsDataType" bold="1" spellChecking="false" /> <!-- #cc6666 -->
|
||||
<itemData name="CFX Tags" defStyleNum="dsOthers" bold="1" spellChecking="false" /> <!-- #008000 -->
|
||||
<itemData name="Numbers" defStyleNum="dsDecVal" spellChecking="false" /> <!-- #0000ff -->
|
||||
<itemData name="HTML Entities" defStyleNum="dsInformation" spellChecking="false" /> <!-- #000000 -->
|
||||
<itemData name="Style Selectors" defStyleNum="dsChar" /> <!-- #ff00ff -->
|
||||
<itemData name="Style Properties" defStyleNum="dsAttribute" /> <!-- #000080 -->
|
||||
<itemData name="Style Values" defStyleNum="dsVerbatimString" /> <!-- #ff0000 -->
|
||||
<itemData name="Brackets" defStyleNum="dsKeyword" spellChecking="false" /> <!-- #000080 -->
|
||||
<itemData name="Script Numbers" defStyleNum="dsDecVal" spellChecking="false" /> <!-- #ff00ff -->
|
||||
<itemData name="Script Strings" defStyleNum="dsString" /> <!-- #008080 -->
|
||||
<itemData name="Script Operators" defStyleNum="dsKeyword" spellChecking="false" /> <!-- #0000ff -->
|
||||
<itemData name="Script Keywords" defStyleNum="dsControlFlow" spellChecking="false" /> <!-- #0000cc -->
|
||||
<itemData name="Script Functions" defStyleNum="dsFunction" bold="1" spellChecking="false" />
|
||||
<itemData name="Script Objects" defStyleNum="dsExtension" spellChecking="false" /> <!-- #0000cc -->
|
||||
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
|
||||
<comments>
|
||||
|
||||
<comment name="multiLine" start="<!---" end="--->" region="CF Comment" />
|
||||
|
||||
</comments>
|
||||
|
||||
<keywords casesensitive="0" weakDeliminator="-" />
|
||||
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language
|
||||
version="1"
|
||||
kateversion="5.0"
|
||||
name="Comments"
|
||||
section="Other"
|
||||
extensions=""
|
||||
mimetype=""
|
||||
author="Alex Turbov (i.zaufi@gmail.com)"
|
||||
license="MIT"
|
||||
hidden="true"
|
||||
>
|
||||
<highlighting>
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Alerts" />
|
||||
<IncludeRules context="##Modelines" />
|
||||
<IncludeRules context="##SPDX-Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
</language>
|
||||
<!-- kate: indent-width 2; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,177 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!-- Author: Werner Braun <wb@o3-software.de> -->
|
||||
<!-- 29.05.2003 wb mailed to the kate-team (cullmann) -->
|
||||
<!-- 23.05.2003 wb added *.bro File-Type for GPCP Browser output-->
|
||||
<!-- 09.05.2003 wb nested comments allowed (maximum two level nesting) -->
|
||||
<!-- 07.04.2003 wb IN Problem solved -->
|
||||
<!-- 06.05.2003 wb NEW without ( -->
|
||||
<!-- 22.04.2003 wb Minor bugfixes -->
|
||||
<!-- 19.04.2003 wb Some more Enhancements -->
|
||||
<!-- 18.04.2003 wb Enhancenment for Maior / Minor Comments and Full / ReadOnly Exports, Folds for Procedures, Records, Comments -->
|
||||
<!-- 17.04.2003 wb Enhancements for Relation and Operators -->
|
||||
<language name="Component-Pascal" version="5" kateversion="5.0" section="Sources" extensions="*.cp;*.bro" mimetype="text/x-component-pascal" author="Werner Braun (wb@o3-software.de)" license="">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>BEGIN</item>
|
||||
<item>BY</item>
|
||||
<item>CASE</item>
|
||||
<item>CLOSE</item>
|
||||
<item>CONST</item>
|
||||
<item>DO</item>
|
||||
<item>ELSE</item>
|
||||
<item>ELSIF</item>
|
||||
<item>END</item>
|
||||
<item>FOR</item>
|
||||
<item>IF</item>
|
||||
<item>IMPORT</item>
|
||||
<item>LOOP</item>
|
||||
<item>MODULE</item>
|
||||
<item>NEW</item>
|
||||
<item>OF</item>
|
||||
<item>OUT</item>
|
||||
<item>PROCEDURE</item>
|
||||
<item>REPEAT</item>
|
||||
<item>THEN</item>
|
||||
<item>TO</item>
|
||||
<item>TYPE</item>
|
||||
<item>UNTIL</item>
|
||||
<item>VAR</item>
|
||||
<item>WHILE</item>
|
||||
<item>WITH</item>
|
||||
</list>
|
||||
<list name="exits">
|
||||
<item>ASSERT</item>
|
||||
<item>EXIT</item>
|
||||
<item>HALT</item>
|
||||
<item>RETURN</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>ANYPTR</item>
|
||||
<item>ANYREC</item>
|
||||
<item>ARRAY</item>
|
||||
<item>BOOLEAN</item>
|
||||
<item>SHORTCHAR</item>
|
||||
<item>CHAR</item>
|
||||
<item>BYTE</item>
|
||||
<item>SHORTINT</item>
|
||||
<item>INTEGER</item>
|
||||
<item>LONGINT</item>
|
||||
<item>POINTER</item>
|
||||
<item>RECORD</item>
|
||||
<item>SHORTREAL</item>
|
||||
<item>REAL</item>
|
||||
<item>SET</item>
|
||||
</list>
|
||||
<list name="attributes">
|
||||
<item>ABSTRACT</item>
|
||||
<item>EMPTY</item>
|
||||
<item>EXTENSIBLE</item>
|
||||
<item>LIMITED</item>
|
||||
</list>
|
||||
<list name="builtins">
|
||||
<item>ABS</item>
|
||||
<item>ASH</item>
|
||||
<item>BITS</item>
|
||||
<item>CAP</item>
|
||||
<item>CHR</item>
|
||||
<item>DEC</item>
|
||||
<item>ENTIER</item>
|
||||
<item>EXCL</item>
|
||||
<item>INC</item>
|
||||
<item>INCL</item>
|
||||
<item>LEN</item>
|
||||
<item>LONG</item>
|
||||
<item>MAX</item>
|
||||
<item>MIN</item>
|
||||
<item>ODD</item>
|
||||
<item>ORD</item>
|
||||
<item>SHORT</item>
|
||||
<item>SIZE</item>
|
||||
</list>
|
||||
<list name="specials">
|
||||
<item>FALSE</item>
|
||||
<item>INF</item>
|
||||
<item>NIL</item>
|
||||
<item>TRUE</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<StringDetect attribute="CommentMaior" context="Comment1" String="(**" beginRegion="Comment"/>
|
||||
<Detect2Chars attribute="CommentMinor" context="Comment2" char="(" char1="*" beginRegion="Comment"/>
|
||||
<DetectChar attribute="String" context="String1" char=""" />
|
||||
<DetectChar attribute="String" context="String2" char="'" />
|
||||
<RegExpr attribute="Keyword" context="#stay" String="PROCEDURE\s" beginRegion="Proc"/>
|
||||
<RegExpr attribute="Normal Text" context="#stay" String="ABSTRACT;|EMPTY;|END\s*[A-Za-z][A-Za-z0-9_]*\;" endRegion="Proc"/>
|
||||
<StringDetect attribute="Type" context="#stay" String="RECORD" beginRegion="Rec"/>
|
||||
<StringDetect attribute="Keyword" context="#stay" String="END" endRegion="Rec"/>
|
||||
<StringDetect attribute="MemAlloc" context="#stay" String="NEW"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Exit" context="#stay" String="exits"/>
|
||||
<keyword attribute="Type" context="#stay" String="types"/>
|
||||
<keyword attribute="Attribute" context="#stay" String="attributes"/>
|
||||
<keyword attribute="Builtin" context="#stay" String="builtins"/>
|
||||
<keyword attribute="SpecialValues" context="#stay" String="specials"/>
|
||||
<RegExpr attribute="Integer" context="#stay" String="\s[\+|\-]{0,1}[0-9]([0-9]*|[0-9A-F]*(H|L))"/>
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<RegExpr attribute="Char" context="#stay" String="\s[0-9][0-9A-F]*X"/>
|
||||
<RegExpr attribute="ExportFull" context="#stay" String="[A-Za-z][A-Za-z0-9_]*\*"/>
|
||||
<RegExpr attribute="ExportReadOnly" context="#stay" String="[A-Za-z][A-Za-z0-9_]*\-"/>
|
||||
<RegExpr attribute="Relation" context="#stay" String="\s(=|#|<|<=|>|>=|IN\s|IS)"/>
|
||||
<RegExpr attribute="Operator" context="#stay" String="\s(\+|\-|OR|\*|/|DIV|MOD|\&)"/>
|
||||
</context>
|
||||
<context attribute="CommentMaior" lineEndContext="#stay" name="Comment1">
|
||||
<Detect2Chars attribute="CommentMaior" context="#pop" char="*" char1=")" endRegion="Comment"/>
|
||||
<Detect2Chars attribute="CommentMinor" context="CommentN" char="(" char1="*"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context attribute="CommentMinor" lineEndContext="#stay" name="Comment2">
|
||||
<Detect2Chars attribute="CommentMinor" context="#pop" char="*" char1=")" endRegion="Comment"/>
|
||||
<Detect2Chars attribute="CommentMinor" context="CommentN" char="(" char1="*"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context attribute="CommentMinor" lineEndContext="#stay" name="CommentN">
|
||||
<Detect2Chars attribute="CommentMinor" context="#pop" char="*" char1=")"/>
|
||||
<Detect2Chars attribute="CommentMinor" context="CommentN2" char="(" char1="*"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context attribute="CommentMinor" lineEndContext="#stay" name="CommentN2">
|
||||
<Detect2Chars attribute="CommentMinor" context="#pop" char="*" char1=")"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#stay" name="String1">
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#stay" name="String2">
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="CommentMaior" defStyleNum="dsComment" />
|
||||
<itemData name="CommentMinor" defStyleNum="dsComment" />
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" />
|
||||
<itemData name="MemAlloc" defStyleNum="dsKeyword" />
|
||||
<itemData name="Exit" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Attribute" defStyleNum="dsOthers"/>
|
||||
<itemData name="Builtin" defStyleNum="dsNormal"/>
|
||||
<itemData name="Integer" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" />
|
||||
<itemData name="Char" defStyleNum="dsChar" />
|
||||
<itemData name="SpecialValues" defStyleNum="dsDecVal"/>
|
||||
<itemData name="ExportFull" defStyleNum="dsOthers"/>
|
||||
<itemData name="ExportReadOnly" defStyleNum="dsOthers"/>
|
||||
<itemData name="Relation" defStyleNum="dsNormal"/>
|
||||
<itemData name="Operator" defStyleNum="dsNormal"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="1" />
|
||||
<comments>
|
||||
<comment name="multiLine" start="(*" end="*)" region="Comment" />
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,215 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!-- The characters ! ? @ are "internal" or system macros, normally not usable, in general: user macros are just letters, see
|
||||
https://wiki.contextgarden.net/System_Macros/Scratch_Variables and https://www.mail-archive.com/ntg-context@ntg.nl/msg87737.html
|
||||
In practice any non-special character works, though english characters should be used, except for one character macros, they use any symbol -->
|
||||
<!ENTITY macro "\\([[:alpha:]]+|[[:graph:]])">
|
||||
]>
|
||||
<language
|
||||
name="ConTeXt"
|
||||
version="11"
|
||||
section="Markup"
|
||||
kateversion="5.79"
|
||||
priority="8"
|
||||
extensions="*.ctx;*.mkiv;*.mkvi;*.mkxl;*.mklx"
|
||||
mimetype="text/x-tex"
|
||||
casesensitive="1"
|
||||
author="Philipp A. (flying-sheep@web.de)"
|
||||
license="GPL"
|
||||
>
|
||||
<highlighting>
|
||||
<list name="titles">
|
||||
<item>\part</item>
|
||||
<item>\chapter</item>
|
||||
<item>\section</item>
|
||||
<item>\subsection</item>
|
||||
<item>\subsubsection</item>
|
||||
<item>\subsubsubsection</item>
|
||||
<item>\subsubsubsubsection</item>
|
||||
<item>\title</item>
|
||||
<item>\subject</item>
|
||||
<item>\subsubject</item>
|
||||
<item>\subsubsubject</item>
|
||||
<item>\subsubsubsubject</item>
|
||||
<item>\subsubsubsubsubject</item>
|
||||
</list>
|
||||
<list name="mathMacros">
|
||||
<item>\m</item>
|
||||
<item>\math</item>
|
||||
<item>\mathematics</item>
|
||||
<item>\formula</item>
|
||||
</list>
|
||||
<list name="startEnvironments">
|
||||
<item>\bTABLEhead</item>
|
||||
<item>\bTABLEnext</item>
|
||||
<item>\bTABLEbody</item>
|
||||
<item>\bTABLEfoot</item>
|
||||
<item>\bTABLE</item>
|
||||
<item>\bTR</item>
|
||||
<item>\bTD</item>
|
||||
</list>
|
||||
<list name="stopEnvironments">
|
||||
<item>\eTABLEhead</item>
|
||||
<item>\eTABLEnext</item>
|
||||
<item>\eTABLEbody</item>
|
||||
<item>\eTABLEfoot</item>
|
||||
<item>\eTABLE</item>
|
||||
<item>\eTR</item>
|
||||
<item>\eTD</item>
|
||||
</list>
|
||||
<list name="startMetaPost">
|
||||
<item>\startMPinclusions</item>
|
||||
<item>\startuseMPgraphic</item>
|
||||
<item>\startreusableMPgraphic</item>
|
||||
<item>\startstaticMPfigure</item>
|
||||
<item>\startuniqueMPgraphic</item>
|
||||
<item>\startMPpage</item>
|
||||
<item>\startMPcode</item>
|
||||
<item>\startMP</item>
|
||||
</list>
|
||||
<list name="stopMetaPost">
|
||||
<item>\stopMPinclusions</item>
|
||||
<item>\stopuseMPgraphic</item>
|
||||
<item>\stopreusableMPgraphic</item>
|
||||
<item>\stopstaticMPfigure</item>
|
||||
<item>\stopuniqueMPgraphic</item>
|
||||
<item>\stopMPpage</item>
|
||||
<item>\stopMPcode</item>
|
||||
<item>\stopMP</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<!-- Normal text -->
|
||||
<context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
|
||||
<keyword String="titles" attribute="Section" context="#stay"/>
|
||||
<Detect2Chars char="$" char1="$" attribute="Block" context="MathModeDisplay"/>
|
||||
<DetectChar char="$" attribute="Block" context="MathMode"/>
|
||||
<keyword String="mathMacros" attribute="Block" context="MathModeMacroFind"/>
|
||||
<StringDetect String="\startformula" attribute="Block" context="MathModeFormula" beginRegion="mathModeBlock"/>
|
||||
<StringDetect String="\starttyping" attribute="Block" context="Verbatim" beginRegion="typingBlock"/>
|
||||
<StringDetect String="\startluacode" attribute="Block" context="LuaCode" beginRegion="luaBlock"/>
|
||||
<StringDetect String="\startLUA" attribute="Block" context="LuaCode" beginRegion="luaBlock"/>
|
||||
<StringDetect String="\startXML" attribute="Block" context="XmlCode" beginRegion="xmlBlock"/>
|
||||
<keyword String="startMetaPost" attribute="Block" context="MetaPostCode" beginRegion="metaPostBlock"/>
|
||||
<IncludeRules context="Common"/>
|
||||
</context>
|
||||
|
||||
<!-- Comment -->
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
<!-- Math Modes -->
|
||||
<context name="MathMode" attribute="Math" lineEndContext="#stay">
|
||||
<DetectChar char="$" attribute="Block" context="#pop"/>
|
||||
<StringDetect String="\stopformula" attribute="Error" context="#stay" />
|
||||
<IncludeRules context="MathModeCommon"/>
|
||||
</context>
|
||||
<context name="MathModeMacroFind" attribute="Math" lineEndContext="#stay">
|
||||
<DetectChar char="{" attribute="Brace" context="#pop!MathModeMacro"/>
|
||||
<RegExpr String="¯o;" attribute="Macro" context="#pop"/> <!-- Single token -->
|
||||
<RegExpr String="[[:graph:]]" attribute="Math" context="#pop"/> <!-- Single token -->
|
||||
</context>
|
||||
<context name="MathModeMacro" attribute="Math" lineEndContext="#stay">
|
||||
<DetectChar char="{" attribute="Brace" context="MathModeMacro"/>
|
||||
<DetectChar char="}" attribute="Brace" context="#pop"/>
|
||||
<DetectChar char="$" attribute="Error" context="#stay"/>
|
||||
<StringDetect String="\stopformula" attribute="Error" context="#stay"/>
|
||||
<IncludeRules context="MathModeCommon"/>
|
||||
</context>
|
||||
<context name="MathModeDisplay" attribute="Math" lineEndContext="#stay">
|
||||
<Detect2Chars char="$" char1="$" attribute="Block" context="#pop"/>
|
||||
<DetectChar char="$" attribute="Error" context="#stay"/>
|
||||
<StringDetect String="\stopformula" attribute="Error" context="#stay"/>
|
||||
<IncludeRules context="MathModeCommon"/>
|
||||
</context>
|
||||
<context name="MathModeFormula" attribute="Math" lineEndContext="#stay">
|
||||
<DetectChar char="$" attribute="Error" context="#stay"/>
|
||||
<StringDetect String="\stopformula" attribute="Block" context="#pop" endRegion="mathModeBlock"/>
|
||||
<IncludeRules context="MathModeCommon"/>
|
||||
</context>
|
||||
<context name="MathModeCommon" attribute="Error" lineEndContext="#stay">
|
||||
<AnyChar String="^_" attribute="Brace" context="#stay"/>
|
||||
<StringDetect String="\startformula" attribute="Error" context="#stay"/>
|
||||
<StringDetect String="\text" attribute="Block" context="MathModeTextFind"/>
|
||||
<IncludeRules context="Common"/>
|
||||
</context>
|
||||
<!--Math text-->
|
||||
<context name="MathModeTextFind" attribute="Normal Text" lineEndContext="#stay" >
|
||||
<DetectChar char="{" attribute="Brace" context="#pop!MathModeText"/>
|
||||
</context>
|
||||
<context name="MathModeText" attribute="Normal Text" lineEndContext="#stay" >
|
||||
<DetectChar char="{" attribute="Brace" context="MathModeText"/>
|
||||
<DetectChar char="}" attribute="Brace" context="#pop"/>
|
||||
<IncludeRules context="Normal Text"/>
|
||||
</context>
|
||||
|
||||
<!--Verbatim TODO: \startC support-->
|
||||
<context name="Verbatim" attribute="Verbatim" lineEndContext="#stay">
|
||||
<StringDetect String="\starttyping" attribute="Verbatim" context="NestedVerbatim"/>
|
||||
<StringDetect String="\stoptyping" attribute="Block" context="#pop" endRegion="typingBlock"/>
|
||||
</context>
|
||||
|
||||
<context name="NestedVerbatim" attribute="Verbatim" lineEndContext="#stay">
|
||||
<StringDetect String="\starttyping" attribute="Verbatim" context="NestedVerbatim"/>
|
||||
<StringDetect String="\stoptyping" attribute="Verbatim" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="MetaPostCode" attribute="Normal Text" lineEndContext="#stay">
|
||||
<keyword String="stopMetaPost" attribute="Block" context="#pop" endRegion="metaPostBlock"/>
|
||||
<IncludeRules context="##Metapost/Metafont"/>
|
||||
</context>
|
||||
|
||||
<context name="LuaCode" attribute="Normal Text" lineEndContext="#stay">
|
||||
<StringDetect String="\stopluacode" attribute="Block" context="#pop" endRegion="luaBlock"/>
|
||||
<StringDetect String="\stopLUA" attribute="Block" context="#pop" endRegion="luaBlock"/>
|
||||
<IncludeRules context="##Lua"/>
|
||||
</context>
|
||||
|
||||
<context name="XmlCode" attribute="Normal Text" lineEndContext="#stay">
|
||||
<StringDetect String="\stopXML" attribute="Block" context="#pop" endRegion="xmlBlock"/>
|
||||
<IncludeRules context="##XML"/>
|
||||
</context>
|
||||
|
||||
<!--Common-->
|
||||
<context name="Common" attribute="Error" lineEndContext="#stay">
|
||||
<DetectChar char="%" attribute="Comment" context="Comment"/>
|
||||
<RegExpr String="\\start(?:[a-zA-Z_]+)" attribute="Block" context="#stay" beginRegion="block"/>
|
||||
<RegExpr String="\\stop(?:[a-zA-Z_]+)" attribute="Block" context="#stay" endRegion="block"/>
|
||||
<keyword String="startEnvironments" attribute="Block" context="#stay" beginRegion="block"/>
|
||||
<keyword String="stopEnvironments" attribute="Block" context="#stay" endRegion="block"/>
|
||||
<RegExpr String="¯o;" attribute="Macro" context="#stay"/>
|
||||
<DetectChar char="{" attribute="Brace" context="#stay" beginRegion="block"/>
|
||||
<DetectChar char="}" attribute="Brace" context="#stay" endRegion="block"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" /><!--(Hi, I’m text)-->
|
||||
<itemData name="Comment" defStyleNum="dsComment" /><!--(%Comment)-->
|
||||
<itemData name="Section" defStyleNum="dsKeyword" /><!--\section{(Fancy!)}-->
|
||||
<itemData name="Brace" defStyleNum="dsChar" spellChecking="false"/><!--({})-->
|
||||
<itemData name="Math" defStyleNum="dsOthers" spellChecking="false"/><!--($5$)-->
|
||||
<itemData name="Macro" defStyleNum="dsFunction" spellChecking="false"/><!--(\foo)-->
|
||||
<itemData name="Block" defStyleNum="dsRegionMarker" spellChecking="false"/><!--\start(bar), \stop(bar)-->
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/><!--$($$)-->
|
||||
<itemData name="Verbatim" defStyleNum="dsString" spellChecking="false"/><!--\starttyping(eggs)\stoptyping, \definetyping[C] \startC(umm…)\stopC-->
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<keywords weakDeliminator="\" wordWrapDeliminator=",{}[]"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start="%" />
|
||||
</comments>
|
||||
</general>
|
||||
|
||||
<spellchecking>
|
||||
<encodings>
|
||||
<encoding string="''" ignored="true" />
|
||||
</encodings>
|
||||
</spellchecking>
|
||||
</language>
|
||||
|
||||
<!-- kate: space-indent off; indent-width 4; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="Crack" version="10" kateversion="5.0" section="Sources" extensions="*.crk" mimetype="">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>break</item>
|
||||
<item>catch</item>
|
||||
<item>class</item>
|
||||
<item>continue</item>
|
||||
<item>else</item>
|
||||
<item>false</item>
|
||||
<item>for</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>is</item>
|
||||
<item>null</item>
|
||||
<item>oper</item>
|
||||
<item>return</item>
|
||||
<item>this</item>
|
||||
<item>true</item>
|
||||
<item>try</item>
|
||||
<item>typeof</item>
|
||||
<item>while</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>bool</item>
|
||||
<item>byte</item>
|
||||
<item>int16</item>
|
||||
<item>int32</item>
|
||||
<item>int64</item>
|
||||
<item>uint16</item>
|
||||
<item>uint32</item>
|
||||
<item>uint64</item>
|
||||
<item>float32</item>
|
||||
<item>float64</item>
|
||||
<item>int</item>
|
||||
<item>uint</item>
|
||||
<item>intz</item>
|
||||
<item>uintz</item>
|
||||
<item>float</item>
|
||||
<item>void</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<WordDetect attribute="Keyword" context="Package" String="import" />
|
||||
<keyword attribute="Data Type" context="#stay" String="types" />
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<HlCOct attribute="Octal" context="#stay"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<DetectChar attribute="String" context="Single quoted String" char="'"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<DetectChar attribute="String" context="Backtick String" char="`"/>
|
||||
<Detect2Chars attribute="Char" context="Char" char="b" char1="'" />
|
||||
<DetectChar attribute="Comment" context="Commentar 1" char="#" />
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="block1"/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="block1"/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>?[]|~^;"/>
|
||||
<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />
|
||||
<RegExpr attribute="Annotation" context="#stay" String="@\w+" />
|
||||
<DetectIdentifier attribute="Normal Text"/>
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<LineContinue attribute="String" context="#pop"/>
|
||||
<HlCStringChar attribute="Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#pop" name="Single quoted String">
|
||||
<LineContinue attribute="String" context="#pop"/>
|
||||
<HlCStringChar attribute="Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#stay" name="Backtick String">
|
||||
<HlCStringChar attribute="Char" context="#stay"/>
|
||||
<Detect2Chars attribute="Substitution" char="$" char1="(" context="Subst"/>
|
||||
<DetectChar attribute="Substitution" char="$" context="Short Subst"/>
|
||||
<DetectChar attribute="String" context="#pop" char="`"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Char" lineEndContext="#pop" name="Char">
|
||||
<HlCStringChar attribute="Char" context="#stay" />
|
||||
<DetectChar attribute="Char" context="#pop" char="'" />
|
||||
</context>
|
||||
|
||||
<context name="Braces" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Normal Text" char=")" context="#pop"/>
|
||||
<!-- Highlight everything inside as code. -->
|
||||
<IncludeRules context="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="Subst" attribute="Normal Text" lineEndContext="#stay">
|
||||
<!-- Switch to a new context when encountering an lbrace so that we don't #pop too early. -->
|
||||
<DetectChar attribute="Normal Text" char="(" context="Braces"/>
|
||||
<DetectChar attribute="Substitution" char=")" context="#pop"/>
|
||||
<!-- Highlight substitution as code. -->
|
||||
<IncludeRules context="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">
|
||||
<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Package" attribute="Package" lineEndContext="#pop">
|
||||
<RegExpr attribute="Package" String="[\w\\.]+" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<IncludeRules context="##Doxygen" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment" />
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
<itemData name="Substitution" defStyleNum="dsOthers"/>
|
||||
<itemData name="Package" defStyleNum="dsFunction"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction"/>
|
||||
<itemData name="Annotation" defStyleNum="dsAttribute"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" />
|
||||
<comment name="multiLine" start="/*" end="*/" region="BlockComment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,993 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
|
||||
<!--
|
||||
Crystal syntax highlighting definition for Kate.
|
||||
Copyright (C) 2022 by Gaurav Shah (gauravshah.89@gmail.com)
|
||||
|
||||
Forked from the Ruby syntax highlighting definition.
|
||||
Copyright (C) 2004 by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)
|
||||
Copyright (C) 2004 by Stefan Lang (langstefan@gmx.at)
|
||||
Copyright (C) 2008 by Robin Pedersen (robinpeder@gmail.com)
|
||||
Copyright (C) 2011 by Miquel Sabaté (mikisabate@gmail.com)
|
||||
|
||||
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 Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
-->
|
||||
|
||||
<!--
|
||||
TODO: Division after gdl contexts is interpreted as regexp
|
||||
-->
|
||||
|
||||
<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
|
||||
<language name="Crystal" section="Sources"
|
||||
version="0" kateversion="5.0"
|
||||
extensions="*.cr"
|
||||
mimetype="application/x-crystal"
|
||||
style="crystal" indenter="ruby"
|
||||
author="Gaurav Shah (gauravshah.89@gmail.com)" license="LGPLv2+">
|
||||
|
||||
<highlighting>
|
||||
|
||||
<list name="keywords">
|
||||
<item>begin</item>
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>elsif</item>
|
||||
<item>end</item>
|
||||
<item>ensure</item>
|
||||
<item>for</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>next</item>
|
||||
<item>rescue</item>
|
||||
<item>return</item>
|
||||
<item>then</item>
|
||||
<item>unless</item>
|
||||
<item>until</item>
|
||||
<item>when</item>
|
||||
<item>yield</item>
|
||||
</list>
|
||||
|
||||
<list name="access-control">
|
||||
<item>private</item>
|
||||
<item>protected</item>
|
||||
</list>
|
||||
|
||||
<list name="attribute-definitions">
|
||||
<item>getter</item>
|
||||
<item>setter</item>
|
||||
<item>property</item>
|
||||
</list>
|
||||
|
||||
<list name="definitions">
|
||||
<item>alias</item>
|
||||
<item>module</item>
|
||||
<item>class</item>
|
||||
<item>struct</item>
|
||||
<item>def</item>
|
||||
<item>macro</item>
|
||||
</list>
|
||||
|
||||
<list name="pseudo-variables">
|
||||
<item>self</item>
|
||||
<item>super</item>
|
||||
<item>nil</item>
|
||||
<item>false</item>
|
||||
<item>true</item>
|
||||
<item>caller</item>
|
||||
<!-- TODO: move these to psudo constants list -->
|
||||
<item>__FILE__</item>
|
||||
<item>__LINE__</item>
|
||||
<item>__END_LINE__</item>
|
||||
<item>__DIR__</item>
|
||||
</list>
|
||||
|
||||
<!-- Kernel module methods.
|
||||
NOTE: Methods ending in ? or !
|
||||
are included below as regexes.
|
||||
-->
|
||||
<!-- TODO: replace this with Crystal Object methods? -->
|
||||
<list name="kernel-methods">
|
||||
<!-- backquote ` -->
|
||||
<item>abort</item>
|
||||
<item>at_exit</item>
|
||||
<item>autoload</item>
|
||||
<item>autoload?</item>
|
||||
<item>binding</item>
|
||||
<item>block_given?</item>
|
||||
<item>callcc</item>
|
||||
<item>caller</item>
|
||||
<item>catch</item>
|
||||
<item>chomp</item>
|
||||
<item>chomp!</item>
|
||||
<item>chop</item>
|
||||
<item>chop!</item>
|
||||
<item>eval</item>
|
||||
<item>exec</item>
|
||||
<item>exit</item>
|
||||
<item>exit!</item>
|
||||
<item>fail</item>
|
||||
<item>fork</item>
|
||||
<item>format</item>
|
||||
<item>getc</item>
|
||||
<item>gets</item>
|
||||
<item>global_variables</item>
|
||||
<item>gsub</item>
|
||||
<item>gsub!</item>
|
||||
<item>iterator?</item>
|
||||
<item>lambda</item>
|
||||
<item>load</item>
|
||||
<item>local_variables</item>
|
||||
<item>loop</item>
|
||||
<item>method_missing</item>
|
||||
<item>open</item>
|
||||
<item>p</item>
|
||||
<item>print</item>
|
||||
<item>printf</item>
|
||||
<item>proc</item>
|
||||
<item>putc</item>
|
||||
<item>puts</item>
|
||||
<item>raise</item>
|
||||
<item>rand</item>
|
||||
<item>readline</item>
|
||||
<item>readlines</item>
|
||||
<item>require</item>
|
||||
<item>require_relative</item>
|
||||
<item>scan</item>
|
||||
<item>select</item>
|
||||
<item>set_trace_func</item>
|
||||
<item>sleep</item>
|
||||
<item>split</item>
|
||||
<item>sprintf</item>
|
||||
<item>srand</item>
|
||||
<item>sub</item>
|
||||
<item>sub!</item>
|
||||
<item>syscall</item>
|
||||
<item>system</item>
|
||||
<item>test</item>
|
||||
<item>throw</item>
|
||||
<item>trace_var</item>
|
||||
<item>trap</item>
|
||||
<item>untrace_var</item>
|
||||
<item>warn</item>
|
||||
</list>
|
||||
|
||||
<list name="mixin-methods">
|
||||
<item>extend</item>
|
||||
<item>include</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<!-- crystal ignores newline after \ -->
|
||||
<LineContinue attribute="Normal Text" context="Line Continue"/>
|
||||
|
||||
<!-- "shebang" line -->
|
||||
<!-- TODO: this may be required once crystal interpreter is ready -->
|
||||
<!--<RegExpr attribute="Keyword" String="^#!\/.*" context="#stay" column="0"/>-->
|
||||
|
||||
<!-- "def" - "end" blocks -->
|
||||
<!-- check for statement modifiers with regexes -->
|
||||
<Detect2Chars attribute="Operator" char="{" char1="%" context="Find closing macro brace" beginRegion="def block"/>
|
||||
<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>
|
||||
<!-- TODO: why is this needed as a Delimiter? -->
|
||||
<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>
|
||||
<RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>
|
||||
<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>
|
||||
<WordDetect attribute="Keyword" String="class" context="no_heredoc" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="struct" context="no_heredoc" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="module" context="#stay" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="case" context="#stay" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="macro" context="#stay" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="def" context="Overloaded Operators" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>
|
||||
<!-- elsif/else close the current block and start a new one -->
|
||||
<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>
|
||||
|
||||
<StringDetect attribute="Operator" String="..." context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>
|
||||
|
||||
<!-- marks a message being sent, not defined -->
|
||||
<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>
|
||||
|
||||
<keyword attribute="Keyword" String="keywords" context="#stay"/>
|
||||
<keyword attribute="Attribute Definition" String="attribute-definitions" context="check_div_2"/>
|
||||
<keyword attribute="Access Control" String="access-control" context="check_div_2"/>
|
||||
<keyword attribute="Definition" String="definitions" context="#stay" />
|
||||
<keyword attribute="Pseudo variable" String="pseudo-variables" context="check_div_1"/>
|
||||
<keyword attribute="Kernel methods" String="kernel-methods" context="check_div_2"/>
|
||||
<keyword attribute="Module mixin methods" String="mixin-methods" context="check_div_2"/>
|
||||
|
||||
<!-- TODO: write a rule for $~ and $? -->
|
||||
<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>
|
||||
<!-- Generally a module or class name like "File", "MyModule_1", .. -->
|
||||
<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>
|
||||
|
||||
<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
|
||||
<!-- TODO: add support for Crystal number literals -->
|
||||
<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>
|
||||
<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>
|
||||
<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>
|
||||
<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>
|
||||
<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>
|
||||
<Int attribute="Dec" context="check_div_1"/>
|
||||
<!-- TODO: what is this? remove if this is not required. -->
|
||||
<HlCChar attribute="Char" context="check_div_1"/>
|
||||
|
||||
<!-- recognize the beginning of a HEREDOC
|
||||
This uses new features in Kate 2.3 and later
|
||||
|
||||
There is no other chance of keeping heredoc apart from the
|
||||
push operator '<<' than requiring to put space between the operator
|
||||
and the string.
|
||||
-->
|
||||
<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*<<[-~](?=\w+|["'`])" beginRegion="HereDocument" />
|
||||
<RegExpr attribute="Operator" context="find_heredoc" String="\s*<<(?=\w+|["'`])" beginRegion="HereDocument" />
|
||||
|
||||
<DetectChar attribute="Operator" char="." context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="&" char1="&" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
|
||||
<!-- \s! is regexp hack -->
|
||||
<RegExpr attribute="Operator" String="\s[\?\:\%]\s|[|&<>\^\+*~\-=]+|\s!|/=\s" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>
|
||||
|
||||
<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" context="check_div_1"/>
|
||||
|
||||
<!-- Do not send to "check_div_1" context!:
|
||||
after detecting these rules (": ") there can be a regular expression (see bug: #361875) -->
|
||||
<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " context="#stay"/>
|
||||
|
||||
<DetectChar attribute="String" char=""" context="Quoted String"/>
|
||||
<!-- TODO: There are no single-quoted strings in Crystal. Only single-quoted characters. Modify accordingly. -->
|
||||
<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
|
||||
<DetectChar attribute="Command" char="`" context="Command String"/>
|
||||
|
||||
<!-- TODO: Remove this if not needed -->
|
||||
<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>
|
||||
|
||||
<DetectChar attribute="Comment" char="#" context="General Comment"/>
|
||||
|
||||
<DetectChar attribute="Delimiter" char="[" context="#stay"/>
|
||||
<DetectChar attribute="Delimiter" char="]" context="check_div_1"/>
|
||||
|
||||
<RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="check_div_1"/>
|
||||
<RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="check_div_1"/>
|
||||
|
||||
<!-- handle the different regular expression formats -->
|
||||
<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>
|
||||
|
||||
<!-- recognize the beginning of a general delimited input format -->
|
||||
<!-- this moves to the next context to separate out the exact nature of the GDL input -->
|
||||
<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s}])" beginRegion="GdlInput" />
|
||||
|
||||
<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>
|
||||
<DetectIdentifier attribute="Normal Text" context="check_div_2"/>
|
||||
|
||||
</context>
|
||||
|
||||
<context name="Macro" attribute="Normal Text" lineEndContext="#stay">
|
||||
<!-- TODO: copied Macro context from Normal context. repititions can be removed. pls refactor by including rules. -->
|
||||
<!-- crystal ignores newline after \ -->
|
||||
<LineContinue attribute="Normal Text" context="Line Continue"/>
|
||||
|
||||
<!-- "def" - "end" blocks -->
|
||||
<!-- check for statement modifiers with regexes -->
|
||||
<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>
|
||||
<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>
|
||||
<RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>
|
||||
<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>
|
||||
<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>
|
||||
<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="def" context="Overloaded Operators" beginRegion="def block"/>
|
||||
<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>
|
||||
<!-- elsif/else close the current block and start a new one -->
|
||||
<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>
|
||||
|
||||
<StringDetect attribute="Operator" String="..." context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>
|
||||
|
||||
<!-- marks a message (being sent, not defined) -->
|
||||
<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>
|
||||
|
||||
<keyword attribute="Keyword" String="keywords" context="#stay"/>
|
||||
<keyword attribute="Attribute Definition" String="attribute-definitions" context="check_div_2"/>
|
||||
<keyword attribute="Definition" String="definitions" context="#stay" />
|
||||
<keyword attribute="Pseudo variable" String="pseudo-variables" context="check_div_1"/>
|
||||
|
||||
<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>
|
||||
<!-- Generally a module or class name like "File", "MyModule_1", .. -->
|
||||
<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>
|
||||
|
||||
<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
|
||||
<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>
|
||||
<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>
|
||||
<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>
|
||||
<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>
|
||||
<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>
|
||||
<Int attribute="Dec" context="check_div_1"/>
|
||||
<HlCChar attribute="Char" context="check_div_1"/>
|
||||
|
||||
<!-- recognize the beginning of a HEREDOC
|
||||
This uses new features in Kate 2.3 and later
|
||||
|
||||
There is no other chance of keeping heredoc apart from the
|
||||
push operator '<<' than requiring to put space between the operator
|
||||
and the string.
|
||||
-->
|
||||
<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*<<[-~](?=\w+|["'`])" beginRegion="HereDocument" />
|
||||
<RegExpr attribute="Operator" context="find_heredoc" String="\s*<<(?=\w+|["'`])" beginRegion="HereDocument" />
|
||||
|
||||
<DetectChar attribute="Operator" char="." context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="&" char1="&" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
|
||||
<!-- \s! is regexp hack -->
|
||||
<RegExpr attribute="Operator" String="\s[\?\:\%]\s|[|&<>\^\+*~\-=]+|\s!|/=\s" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>
|
||||
|
||||
<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" context="check_div_1"/>
|
||||
|
||||
<!-- Do not send to "check_div_1" context!:
|
||||
after detecting these rules (": ") there can be a regular expression (see bug: #361875) -->
|
||||
<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " context="#stay"/>
|
||||
|
||||
<DetectChar attribute="String" char=""" context="Quoted String"/>
|
||||
<!-- TODO: There are no single-quoted strings in Crystal. Only single-quoted characters. Modify accordingly. -->
|
||||
<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
|
||||
<DetectChar attribute="Command" char="`" context="Command String"/>
|
||||
|
||||
<!-- TODO: Remove this if not needed -->
|
||||
<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>
|
||||
|
||||
<DetectChar attribute="Comment" char="#" context="General Comment"/>
|
||||
|
||||
<DetectChar attribute="Delimiter" char="[" context="#stay"/>
|
||||
<DetectChar attribute="Delimiter" char="]" context="check_div_1"/>
|
||||
|
||||
<!-- handle the different regular expression formats -->
|
||||
<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>
|
||||
|
||||
<!-- recognize the beginning of a general delimited input format -->
|
||||
<!-- this moves to the next context to separate out the exact nature of the GDL input -->
|
||||
<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s}])" beginRegion="GdlInput" />
|
||||
|
||||
<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>
|
||||
<DetectIdentifier attribute="Normal Text" context="check_div_2"/>
|
||||
</context>
|
||||
|
||||
<context name="Overloaded Operators" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<DetectChar attribute="Normal Text" char="/" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- In the following contexts, a slash character ('/') is a division operator -->
|
||||
<!-- Everywhere else, it's a regular expression delimiter -->
|
||||
|
||||
<!-- A slash is always a division operator, even if preceeded by whitespace -->
|
||||
<context name="check_div_1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop"/>
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="%" char1="}" context="#pop#pop"/>
|
||||
<AnyChar attribute="Operator" String="/%" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- Same as check_div_1, but with double pop to exit the surrounding context -->
|
||||
<context name="check_div_1_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
|
||||
<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop#pop"/>
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char="%" char1="}" context="#pop#pop#pop#pop"/>
|
||||
<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- A slash is division operator if it's the first character, or if preceeded and followed by whitespace -->
|
||||
<context name="check_div_2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop"/>
|
||||
<AnyChar attribute="Operator" String="/%" context="#pop"/>
|
||||
<DetectSpaces attribute="Normal Text" context="check_div_2_internal"/>
|
||||
</context>
|
||||
|
||||
<!-- Internal context used by check_div_2 -->
|
||||
<context name="check_div_2_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
|
||||
<RegExpr attribute="Operator" String="(//|[/%])(?=\s)" context="#pop#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- Same as check_div_2, but with double pop to exit the surrounding context -->
|
||||
<context name="check_div_2_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
|
||||
<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop#pop"/>
|
||||
<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
|
||||
<DetectSpaces attribute="Normal Text" context="check_div_2_pop_internal"/>
|
||||
</context>
|
||||
|
||||
<!-- Internal context used by check_div_2_pop -->
|
||||
<context name="check_div_2_pop_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop#pop" lineEndContext="#pop#pop#pop">
|
||||
<RegExpr attribute="Operator" String="//(?=\s)" context="#pop#pop#pop"/>
|
||||
<DetectChar attribute="Operator" char="%" context="#pop#pop#pop"/>
|
||||
<RegExpr attribute="Operator" String="/(?=\s)" context="#pop#pop#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Line Continue" attribute="Normal Text" lineEndContext="#pop">
|
||||
<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)|(if|unless)\b" context="#stay" firstNonSpace="true"/>
|
||||
<IncludeRules context="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="Find closing macro brace" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Operator" char="%" char1="}" context="check_div_1_pop" endRegion="def block"/>
|
||||
<IncludeRules context="Macro"/>
|
||||
</context>
|
||||
|
||||
<context name="Find closing block brace" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Operator" char="}" context="check_div_1_pop" endRegion="def block"/>
|
||||
<IncludeRules context="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="Quoted String" attribute="String" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
|
||||
<Detect2Chars attribute="String" char="\" char1=""" context="#stay"/>
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
|
||||
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
|
||||
<DetectChar char=""" attribute="String" context="check_div_1_pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
|
||||
<Detect2Chars attribute="String" char="\" char1="'" context="#stay"/>
|
||||
<DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Command String" attribute="Command" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
|
||||
<Detect2Chars attribute="String" char="\" char1="`" context="#stay"/>
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
|
||||
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
|
||||
<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>
|
||||
</context>
|
||||
|
||||
<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/>
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
|
||||
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
|
||||
<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>
|
||||
</context>
|
||||
|
||||
<!-- Substitutions can be nested -->
|
||||
<context name="Subst" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Substitution" char="}" context="#pop"/>
|
||||
<!-- Highlight substitution as code. -->
|
||||
<IncludeRules context="Normal"/>
|
||||
</context>
|
||||
|
||||
<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">
|
||||
<!-- Check for e.g.: "#@var#@@xy" -->
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>
|
||||
<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<!-- This handles access of nested module classes and class methods -->
|
||||
<context name="Member Access" attribute="Member" lineEndContext="#pop">
|
||||
<!-- marks a message (being sent, not defined) -->
|
||||
<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" context="check_div_2_pop"/>
|
||||
<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?" context="#stay"/>
|
||||
<RegExpr attribute="Constant" String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
|
||||
<RegExpr attribute="Constant" String="[A-Z]+_*([0-9]|[a-z])\w*" context="#stay"/>
|
||||
<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
|
||||
<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/>
|
||||
<Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>
|
||||
<DetectChar attribute="Member" char="." context="#stay"/>
|
||||
|
||||
<AnyChar attribute="Operator" String="=+-*/%|&[]{}~" context="#pop"/>
|
||||
<DetectChar attribute="Comment" char="#" context="#pop"/>
|
||||
<AnyChar attribute="Normal Text" String="()\" context="#pop"/>
|
||||
<RegExpr attribute="Member" String="\W" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="General Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<!-- HEREDOC support
|
||||
The contexts below support both normal and indented heredocs
|
||||
-->
|
||||
<!-- here we markup the heredoc markers -->
|
||||
<context name="find_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />
|
||||
<RegExpr attribute="Keyword" context="normal_heredoc" String="(?|(\w+)|"(\w+)"|`(\w+)`)" />
|
||||
</context>
|
||||
<context name="find_indented_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />
|
||||
<RegExpr attribute="Keyword" context="indented_heredoc" String="(?|(\w+)|"(\w+)"|`(\w+)`)" />
|
||||
</context>
|
||||
<!-- these are the real heredoc contexts -->
|
||||
<context name="indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
|
||||
<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
|
||||
<IncludeRules context="heredoc_rules" />
|
||||
</context>
|
||||
<context name="apostrophed_indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
|
||||
<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
|
||||
</context>
|
||||
|
||||
<context name="normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
|
||||
<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>
|
||||
<IncludeRules context="heredoc_rules" />
|
||||
</context>
|
||||
<context name="apostrophed_normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
|
||||
<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>
|
||||
</context>
|
||||
|
||||
<!-- rules for heredoc types -->
|
||||
<context name="heredoc_rules" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
|
||||
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
|
||||
</context>
|
||||
|
||||
<!-- avoid highlighting heredoc markers, for example, in singleton class definition (see bug: #358273) -->
|
||||
<context name="no_heredoc" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Operator" char="<" char1="<" context="#pop"/>
|
||||
<!-- comments -->
|
||||
<RegExpr attribute="Comment" String="^#\s*BEGIN.*$" context="#stay" beginRegion="marker" column="0"/>
|
||||
<RegExpr attribute="Comment" String="^#\s*END.*$" context="#stay" endRegion="marker" column="0"/>
|
||||
<DetectChar attribute="Comment" char="#" context="General Comment"/>
|
||||
</context>
|
||||
|
||||
<!-- General delimited input support
|
||||
The contexts below handle the various gdl formats
|
||||
-->
|
||||
<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">
|
||||
|
||||
<!-- handle token arrays -->
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="w" char1="(" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="w" char1="{" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="w" char1="[" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="w" char1="<" />
|
||||
<!-- then we handle the 'any char' format -->
|
||||
<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />
|
||||
|
||||
<!-- handle token arrays -->
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="W" char1="(" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="W" char1="{" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="W" char1="[" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="W" char1="<" />
|
||||
<!-- then we handle the 'any char' format -->
|
||||
<RegExpr attribute="GDL input" context="gdl_token_array_5" String="W([^\s\w])" />
|
||||
|
||||
<!-- handle apostrophed strings -->
|
||||
<Detect2Chars attribute="GDL input" context="gdl_apostrophed_1" char="q" char1="(" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_apostrophed_2" char="q" char1="{" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_apostrophed_3" char="q" char1="[" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_apostrophed_4" char="q" char1="<" />
|
||||
<!-- then we handle the 'any char' format -->
|
||||
<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />
|
||||
|
||||
<!-- handle shell commands -->
|
||||
<Detect2Chars attribute="GDL input" context="gdl_shell_command_1" char="x" char1="(" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_shell_command_2" char="x" char1="{" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_shell_command_3" char="x" char1="[" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_shell_command_4" char="x" char1="<" />
|
||||
<!-- then we handle the 'any char' format -->
|
||||
<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />
|
||||
|
||||
<!-- handle regular expressions -->
|
||||
<Detect2Chars attribute="GDL input" context="gdl_regexpr_1" char="r" char1="(" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_regexpr_2" char="r" char1="{" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_regexpr_3" char="r" char1="[" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_regexpr_4" char="r" char1="<" />
|
||||
<!-- then we handle the 'any char' format -->
|
||||
<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" />
|
||||
|
||||
<!-- handle double-quoted strings -->
|
||||
<!--
|
||||
be careful to make this the last GDL ruleset, because the rule for
|
||||
the short form %?foo? will otherwise catch any of the other formats
|
||||
-->
|
||||
<Detect2Chars attribute="GDL input" context="gdl_dq_string_1" char="Q" char1="(" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_dq_string_2" char="Q" char1="{" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_dq_string_3" char="Q" char1="[" />
|
||||
<Detect2Chars attribute="GDL input" context="gdl_dq_string_4" char="Q" char1="<" />
|
||||
<DetectChar attribute="GDL input" context="gdl_dq_string_1" char="(" />
|
||||
<DetectChar attribute="GDL input" context="gdl_dq_string_2" char="{" />
|
||||
<DetectChar attribute="GDL input" context="gdl_dq_string_3" char="[" />
|
||||
<DetectChar attribute="GDL input" context="gdl_dq_string_4" char="<" />
|
||||
<!-- then we handle the 'any char' format -->
|
||||
<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" />
|
||||
|
||||
</context>
|
||||
<!-- double-quoted string specific contexts follow -->
|
||||
<context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
|
||||
<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
|
||||
<DetectChar attribute="String" context="#pop" char=")" />
|
||||
</context>
|
||||
<!-- note that here substitution should win over nesting -->
|
||||
<context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
|
||||
<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
|
||||
</context>
|
||||
<context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" >
|
||||
<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
|
||||
<DetectChar attribute="String" context="#pop" char="}" />
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
|
||||
<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" >
|
||||
<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
|
||||
<DetectChar attribute="String" context="#pop" char="]" />
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1=">" context="#stay"/>
|
||||
<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="<" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" >
|
||||
<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="<" />
|
||||
<DetectChar attribute="String" context="#pop" char=">" />
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
</context>
|
||||
|
||||
<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
|
||||
delimiter character
|
||||
-->
|
||||
<context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true">
|
||||
<IncludeRules context="dq_string_rules" />
|
||||
<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true" />
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
|
||||
</context>
|
||||
<!-- rules to be included in all dq_string contexts -->
|
||||
<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >
|
||||
<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
|
||||
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
|
||||
</context>
|
||||
|
||||
<!-- token array specific contexts -->
|
||||
|
||||
<context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
|
||||
<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
|
||||
<DetectChar attribute="String" context="#pop" char=")" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
|
||||
<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
|
||||
</context>
|
||||
<context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
|
||||
<DetectChar attribute="String" context="#pop" char="}" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
|
||||
<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
|
||||
<DetectChar attribute="String" context="#pop" char="]" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<Detect2Chars attribute="String" char="\" char1=">" context="#stay"/>
|
||||
<DetectChar attribute="String" context="gdl_token_array_4_nested" char="<" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" >
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<DetectChar attribute="String" context="gdl_token_array_4_nested" char="<" />
|
||||
<DetectChar attribute="String" context="#pop" char=">" />
|
||||
</context>
|
||||
|
||||
<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
|
||||
delimiter character
|
||||
-->
|
||||
<context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true">
|
||||
<IncludeRules context="token_array_rules" />
|
||||
<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true"/>
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
|
||||
</context>
|
||||
|
||||
<!-- rules to be included in all token_array contexts -->
|
||||
<context name="token_array_rules" attribute="String" lineEndContext="#stay" >
|
||||
<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<!-- apostrophed string specific contexts -->
|
||||
|
||||
<context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/>
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
|
||||
<DetectChar attribute="Raw String" context="#pop" char=")" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/>
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
|
||||
</context>
|
||||
<context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
|
||||
<DetectChar attribute="Raw String" context="#pop" char="}" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/>
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
|
||||
<DetectChar attribute="Raw String" context="#pop" char="]" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<Detect2Chars attribute="Raw String" char="\" char1=">" context="#stay"/>
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="<" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" >
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="<" />
|
||||
<DetectChar attribute="Raw String" context="#pop" char=">" />
|
||||
</context>
|
||||
|
||||
<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
|
||||
delimiter character
|
||||
-->
|
||||
<context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true">
|
||||
<IncludeRules context="apostrophed_rules" />
|
||||
<StringDetect attribute="Raw String" String="\%1" context="#stay" dynamic="true"/>
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
|
||||
</context>
|
||||
|
||||
<!-- rules to be included in all apostrophed contexts -->
|
||||
<context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" >
|
||||
<Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<!-- shell command specific contexts -->
|
||||
|
||||
<context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/>
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
|
||||
<DetectChar attribute="Command" context="#pop" char=")" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/>
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
|
||||
</context>
|
||||
<context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
|
||||
<DetectChar attribute="Command" context="#pop" char="}" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/>
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
|
||||
<DetectChar attribute="Command" context="#pop" char="]" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<Detect2Chars attribute="Command" char="\" char1=">" context="#stay"/>
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="<" />
|
||||
<DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" >
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="<" />
|
||||
<DetectChar attribute="Command" context="#pop" char=">" />
|
||||
</context>
|
||||
|
||||
<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
|
||||
delimiter character
|
||||
-->
|
||||
<context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true">
|
||||
<IncludeRules context="shell_command_rules" />
|
||||
<StringDetect attribute="Command" String="\%1" context="#stay" dynamic="true" />
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
|
||||
</context>
|
||||
|
||||
<!-- rules to be included in all shell_command contexts -->
|
||||
<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >
|
||||
<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
|
||||
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
|
||||
</context>
|
||||
|
||||
<!-- regular expression specific contexts -->
|
||||
|
||||
<context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/>
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
|
||||
<DetectChar attribute="Regular Expression" context="#pop" char=")" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/>
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" />
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
|
||||
</context>
|
||||
<context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
|
||||
<DetectChar attribute="Regular Expression" context="#pop" char="}" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/>
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
|
||||
<DetectChar attribute="Regular Expression" context="#pop" char="]" />
|
||||
</context>
|
||||
|
||||
<context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<Detect2Chars attribute="Regular Expression" char="\" char1=">" context="#stay"/>
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="<" />
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String=">[uiomxn]*" endRegion="GdlInput" />
|
||||
</context>
|
||||
<context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="<" />
|
||||
<DetectChar attribute="Regular Expression" context="#pop" char=">" />
|
||||
</context>
|
||||
|
||||
<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
|
||||
delimiter character
|
||||
-->
|
||||
<context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true">
|
||||
<IncludeRules context="regexpr_rules" />
|
||||
<StringDetect attribute="Regular Expression" String="\%1" context="#stay" dynamic="true" />
|
||||
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" />
|
||||
</context>
|
||||
|
||||
<!-- rules to be included in all regexpr contexts -->
|
||||
<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >
|
||||
<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
|
||||
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
|
||||
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
|
||||
</context>
|
||||
|
||||
<!-- END of General delimited input support -->
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
|
||||
<itemData name="Keyword" defStyleNum="dsControlFlow"/>
|
||||
<itemData name="Attribute Definition" defStyleNum="dsOthers"/>
|
||||
<itemData name="Access Control" defStyleNum="dsAttribute" bold="1"/> <!-- #0000FF -->
|
||||
<itemData name="Definition" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>
|
||||
|
||||
<itemData name="Dec" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Bin" defStyleNum="dsBaseN"/>
|
||||
|
||||
<itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0"/> <!-- #D40000 -->
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Raw String" defStyleNum="dsVerbatimString" /> <!-- #DD4A4A -->
|
||||
<itemData name="Command" defStyleNum="dsInformation"/> <!-- #AA3000 -->
|
||||
<itemData name="Message" defStyleNum="dsAttribute" bold="0"/> <!-- #4000A7 -->
|
||||
<itemData name="Regular Expression" defStyleNum="dsSpecialString"/> <!-- #4A5704 -->
|
||||
<itemData name="Substitution" defStyleNum="dsSpecialChar"/>
|
||||
<!-- short for 'general delimited input' -->
|
||||
<itemData name="GDL input" defStyleNum="dsOthers" />
|
||||
|
||||
<itemData name="Global Constant" defStyleNum="dsConstant" bold="1"/> <!-- #bb1188 -->
|
||||
<itemData name="Constant" defStyleNum="dsDataType"/>
|
||||
<itemData name="Constant Value" defStyleNum="dsConstant" bold="0"/> <!-- #bb1188 -->
|
||||
<itemData name="Kernel methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->
|
||||
<itemData name="Module mixin methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->
|
||||
<itemData name="Member" defStyleNum="dsNormal"/>
|
||||
<itemData name="Instance Variable" defStyleNum="dsOthers"/>
|
||||
<itemData name="Class Variable" defStyleNum="dsOthers"/>
|
||||
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
|
||||
<itemData name="Here Document" defStyleNum="dsDocumentation"/>
|
||||
|
||||
<itemData name="Delimiter" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->
|
||||
<itemData name="Operator" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" position="afterwhitespace"/>
|
||||
</comments>
|
||||
<keywords casesensitive="1" weakDeliminator="!?"/>
|
||||
</general>
|
||||
</language>
|
||||
|
||||
<!-- kate: replace-tabs off; -->
|
||||
@@ -0,0 +1,169 @@
|
||||
<!DOCTYPE language>
|
||||
<language name="C#" alternativeNames="CS;CSharp" version="14" kateversion="5.0" section="Sources" extensions="*.cs;*.ashx" mimetype="text/x-csharp-src;text/x-csharp-hde" indenter="cstyle" style="C++">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>abstract</item>
|
||||
<item>as</item>
|
||||
<item>base</item>
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>catch</item>
|
||||
<item>class</item>
|
||||
<item>checked</item>
|
||||
<item>continue</item>
|
||||
<item>default</item>
|
||||
<item>delegate</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>enum</item>
|
||||
<item>event</item>
|
||||
<item>explicit</item>
|
||||
<item>extern</item>
|
||||
<item>false</item>
|
||||
<item>for</item>
|
||||
<item>foreach</item>
|
||||
<item>finally</item>
|
||||
<item>fixed</item>
|
||||
<item>goto</item>
|
||||
<item>if</item>
|
||||
<item>implicit</item>
|
||||
<item>in</item>
|
||||
<item>interface</item>
|
||||
<item>internal</item>
|
||||
<item>is</item>
|
||||
<item>lock</item>
|
||||
<item>namespace</item>
|
||||
<item>new</item>
|
||||
<item>null</item>
|
||||
<item>operator</item>
|
||||
<item>out</item>
|
||||
<item>override</item>
|
||||
<item>params</item>
|
||||
<item>private</item>
|
||||
<item>protected</item>
|
||||
<item>public</item>
|
||||
<item>readonly</item>
|
||||
<item>ref</item>
|
||||
<item>return</item>
|
||||
<item>sealed</item>
|
||||
<item>sizeof</item>
|
||||
<item>stackalloc</item>
|
||||
<item>static</item>
|
||||
<item>struct</item>
|
||||
<item>switch</item>
|
||||
<item>this</item>
|
||||
<item>throw</item>
|
||||
<item>true</item>
|
||||
<item>try</item>
|
||||
<item>typeof</item>
|
||||
<item>unchecked</item>
|
||||
<item>unsafe</item>
|
||||
<item>using</item>
|
||||
<item>virtual</item>
|
||||
<item>while</item>
|
||||
<item>#if</item>
|
||||
<item>#else</item>
|
||||
<item>#elif</item>
|
||||
<item>#endif</item>
|
||||
<item>#define</item>
|
||||
<item>#undef</item>
|
||||
<item>#warning</item>
|
||||
<item>#error</item>
|
||||
<item>#line</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>bool</item>
|
||||
<item>byte</item>
|
||||
<item>char</item>
|
||||
<item>const</item>
|
||||
<item>decimal</item>
|
||||
<item>double</item>
|
||||
<item>float</item>
|
||||
<item>int</item>
|
||||
<item>long</item>
|
||||
<item>object</item>
|
||||
<item>uint</item>
|
||||
<item>ushort</item>
|
||||
<item>ulong</item>
|
||||
<item>sbyte</item>
|
||||
<item>short</item>
|
||||
<item>string</item>
|
||||
<item>void</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types" />
|
||||
<Float attribute="Float" context="Float Suffixes"/>
|
||||
<HlCOct attribute="Octal" context="#stay"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<Int attribute="Decimal" context="Int Suffixes"/>
|
||||
<HlCChar attribute="Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="block1"/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="block1"/>
|
||||
<RegExpr attribute="Data Type" context="#stay" String="\bvar(?=\s+\w+)"/>
|
||||
<RegExpr attribute="Keyword" context="#stay" String="\b(partial(?=\s+(?:class|struct|interface|void))|yield(?=\s+(?:return|break))|(?:set|get)(?=\s*[;{])|global(?=\s*::\s*\w+))"/>
|
||||
<StringDetect attribute="Decimal" context="Decimal" String="#region" beginRegion="Region1"/>
|
||||
<StringDetect attribute="Decimal" context="Decimal" String="#endregion" endRegion="Region1"/>
|
||||
<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />
|
||||
<DetectChar attribute="Symbol" context="Member" char="."/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/*<=>?[]|~^;"/>
|
||||
</context>
|
||||
<context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<AnyChar String="dDfFmM" attribute="Float" context="#pop"/>
|
||||
</context>
|
||||
<context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>
|
||||
<StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>
|
||||
<AnyChar attribute="Decimal" context="#pop" String="ULul"/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<LineContinue attribute="String" context="#pop"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Function" context="#pop" String="\b[_\w][_\w\d]*(?=[\s]*)" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
<context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<IncludeRules context="##Doxygen" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/" />
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="BlockComment" />
|
||||
</context>
|
||||
<context attribute="Decimal" lineEndContext="#pop" name="Decimal"/>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Function" defStyleNum="dsFunction"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" position="afterwhitespace"/>
|
||||
<comment name="multiLine" start="/*" end="*/" region="BlockComment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!ENTITY sep "|">
|
||||
]>
|
||||
<!--
|
||||
Inspired by Rainbow CSV
|
||||
|
||||
Language name | Separator | Extension | Properties
|
||||
CSV | , (comma) | .csv | Ignored inside double-quoted fields
|
||||
TSV | \t (TAB) | .tsv .tab |
|
||||
CSV (semicolon) | ; (semicolon) | | Ignored inside double-quoted fields
|
||||
CSV (whitespace) | whitespace | | Consecutive whitespaces are merged
|
||||
CSV (pipe) | | (pipe) |
|
||||
-->
|
||||
<language name="CSV (pipe)" section="Other" version="1" kateversion="2.4" extensions="*.csv" mimetype="text/csv" priority="4" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
|
||||
<highlighting>
|
||||
|
||||
<contexts>
|
||||
<context name="Column0" lineEndContext="#stay" attribute="Column 0">
|
||||
<DetectChar char="&sep;" context="#pop!Column1" attribute="Column 0 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column1" lineEndContext="#pop!Column0" attribute="Column 1">
|
||||
<DetectChar char="&sep;" context="#pop!Column2" attribute="Column 1 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column2" lineEndContext="#pop!Column0" attribute="Column 2">
|
||||
<DetectChar char="&sep;" context="#pop!Column3" attribute="Column 2 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column3" lineEndContext="#pop!Column0" attribute="Column 3">
|
||||
<DetectChar char="&sep;" context="#pop!Column4" attribute="Column 3 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column4" lineEndContext="#pop!Column0" attribute="Column 4">
|
||||
<DetectChar char="&sep;" context="#pop!Column5" attribute="Column 4 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column5" lineEndContext="#pop!Column0" attribute="Column 5">
|
||||
<DetectChar char="&sep;" context="#pop!Column6" attribute="Column 5 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column6" lineEndContext="#pop!Column0" attribute="Column 6">
|
||||
<DetectChar char="&sep;" context="#pop!Column7" attribute="Column 6 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column7" lineEndContext="#pop!Column0" attribute="Column 7">
|
||||
<DetectChar char="&sep;" context="#pop!Column8" attribute="Column 7 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column8" lineEndContext="#pop!Column0" attribute="Column 8">
|
||||
<DetectChar char="&sep;" context="#pop!Column9" attribute="Column 8 Separator"/>
|
||||
</context>
|
||||
|
||||
<context name="Column9" lineEndContext="#pop!Column0" attribute="Column 9">
|
||||
<DetectChar char="&sep;" context="#pop!Column0" attribute="Column 9 Separator"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Column 0" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9" defStyleNum="dsDataType"/>
|
||||
|
||||
<itemData name="Column 0 Separator" bold="1" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1 Separator" bold="1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2 Separator" bold="1" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3 Separator" bold="1" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4 Separator" bold="1" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5 Separator" bold="1" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6 Separator" bold="1" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7 Separator" bold="1" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8 Separator" bold="1" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9 Separator" bold="1" defStyleNum="dsDataType"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!ENTITY sep ";">
|
||||
]>
|
||||
<!--
|
||||
Inspired by Rainbow CSV
|
||||
|
||||
Language name | Separator | Extension | Properties
|
||||
CSV | , (comma) | .csv | Ignored inside double-quoted fields
|
||||
TSV | \t (TAB) | .tsv .tab |
|
||||
CSV (semicolon) | ; (semicolon) | | Ignored inside double-quoted fields
|
||||
CSV (whitespace) | whitespace | | Consecutive whitespaces are merged
|
||||
CSV (pipe) | | (pipe) |
|
||||
-->
|
||||
<language name="CSV (semicolon)" section="Other" version="1" kateversion="5.62" extensions="*.csv" mimetype="text/csv" priority="4" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
|
||||
<highlighting>
|
||||
|
||||
<contexts>
|
||||
<context name="Column0" lineEndContext="#stay" attribute="Column 0">
|
||||
<DetectChar char="&sep;" context="#pop!Column1" attribute="Column 0 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column0Quote"/>
|
||||
<DetectChar char=""" context="Column0MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column0Quote" lineEndContext="#pop" attribute="Column 0" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column0MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column0MultiLine" lineEndContext="#stay" attribute="Column 0">
|
||||
<DetectChar char=""" context="#pop!Column0Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column1" lineEndContext="#pop!Column0" attribute="Column 1">
|
||||
<DetectChar char="&sep;" context="#pop!Column2" attribute="Column 1 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column1Quote"/>
|
||||
<DetectChar char=""" context="Column1MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column1Quote" lineEndContext="#pop#pop!Column0" attribute="Column 1" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column1MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column1MultiLine" lineEndContext="#stay" attribute="Column 1">
|
||||
<DetectChar char=""" context="#pop!Column1Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column2" lineEndContext="#pop!Column0" attribute="Column 2">
|
||||
<DetectChar char="&sep;" context="#pop!Column3" attribute="Column 2 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column2Quote"/>
|
||||
<DetectChar char=""" context="Column2MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column2Quote" lineEndContext="#pop#pop!Column0" attribute="Column 2" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column2MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column2MultiLine" lineEndContext="#stay" attribute="Column 2">
|
||||
<DetectChar char=""" context="#pop!Column2Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column3" lineEndContext="#pop!Column0" attribute="Column 3">
|
||||
<DetectChar char="&sep;" context="#pop!Column4" attribute="Column 3 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column3Quote"/>
|
||||
<DetectChar char=""" context="Column3MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column3Quote" lineEndContext="#pop#pop!Column0" attribute="Column 3" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column3MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column3MultiLine" lineEndContext="#stay" attribute="Column 3">
|
||||
<DetectChar char=""" context="#pop!Column3Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column4" lineEndContext="#pop!Column0" attribute="Column 4">
|
||||
<DetectChar char="&sep;" context="#pop!Column5" attribute="Column 4 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column4Quote"/>
|
||||
<DetectChar char=""" context="Column4MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column4Quote" lineEndContext="#pop#pop!Column0" attribute="Column 4" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column4MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column4MultiLine" lineEndContext="#stay" attribute="Column 4">
|
||||
<DetectChar char=""" context="#pop!Column4Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column5" lineEndContext="#pop!Column0" attribute="Column 5">
|
||||
<DetectChar char="&sep;" context="#pop!Column6" attribute="Column 5 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column5Quote"/>
|
||||
<DetectChar char=""" context="Column5MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column5Quote" lineEndContext="#pop#pop!Column0" attribute="Column 5" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column5MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column5MultiLine" lineEndContext="#stay" attribute="Column 5">
|
||||
<DetectChar char=""" context="#pop!Column5Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column6" lineEndContext="#pop!Column0" attribute="Column 6">
|
||||
<DetectChar char="&sep;" context="#pop!Column7" attribute="Column 6 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column6Quote"/>
|
||||
<DetectChar char=""" context="Column6MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column6Quote" lineEndContext="#pop#pop!Column0" attribute="Column 6" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column6MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column6MultiLine" lineEndContext="#stay" attribute="Column 6">
|
||||
<DetectChar char=""" context="#pop!Column6Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column7" lineEndContext="#pop!Column0" attribute="Column 7">
|
||||
<DetectChar char="&sep;" context="#pop!Column8" attribute="Column 7 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column7Quote"/>
|
||||
<DetectChar char=""" context="Column7MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column7Quote" lineEndContext="#pop#pop!Column0" attribute="Column 7" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column7MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column7MultiLine" lineEndContext="#stay" attribute="Column 7">
|
||||
<DetectChar char=""" context="#pop!Column7Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column8" lineEndContext="#pop!Column0" attribute="Column 8">
|
||||
<DetectChar char="&sep;" context="#pop!Column9" attribute="Column 8 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column8Quote"/>
|
||||
<DetectChar char=""" context="Column8MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column8Quote" lineEndContext="#pop#pop!Column0" attribute="Column 8" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column8MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column8MultiLine" lineEndContext="#stay" attribute="Column 8">
|
||||
<DetectChar char=""" context="#pop!Column8Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column9" lineEndContext="#pop!Column0" attribute="Column 9">
|
||||
<DetectChar char="&sep;" context="#pop!Column0" attribute="Column 9 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column9Quote"/>
|
||||
<DetectChar char=""" context="Column9MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column9Quote" lineEndContext="#pop!Column0" attribute="Column 9" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column9MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column9MultiLine" lineEndContext="#stay" attribute="Column 9">
|
||||
<DetectChar char=""" context="#pop!Column9Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="FindField" lineEndContext="#stay" attribute="Column 0">
|
||||
<RegExpr String="[^&sep;]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Error" lineEndContext="#stay" attribute="Error">
|
||||
<RegExpr String="[^&sep;]+" context="#pop" attribute="Error"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Column 0" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9" defStyleNum="dsDataType"/>
|
||||
|
||||
<itemData name="Column 0 Separator" bold="1" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1 Separator" bold="1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2 Separator" bold="1" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3 Separator" bold="1" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4 Separator" bold="1" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5 Separator" bold="1" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6 Separator" bold="1" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7 Separator" bold="1" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8 Separator" bold="1" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9 Separator" bold="1" defStyleNum="dsDataType"/>
|
||||
|
||||
<itemData name="Error" defStyleNum="dsError"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
Inspired by Rainbow CSV
|
||||
|
||||
Language name | Separator | Extension | Properties
|
||||
CSV | , (comma) | .csv | Ignored inside double-quoted fields
|
||||
TSV | \t (TAB) | .tsv .tab |
|
||||
CSV (semicolon) | ; (semicolon) | | Ignored inside double-quoted fields
|
||||
CSV (whitespace) | whitespace | | Consecutive whitespaces are merged
|
||||
CSV (pipe) | | (pipe) |
|
||||
-->
|
||||
<language name="CSV (whitespace)" section="Other" version="1" kateversion="5.62" extensions="*.csv" mimetype="text/csv" priority="4" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
|
||||
<highlighting>
|
||||
|
||||
<contexts>
|
||||
<context name="Column0" lineEndContext="#stay" attribute="Column 0">
|
||||
<DetectChar char=" " context="#pop!Column0Spaces" attribute="Column 0 Separator"/>
|
||||
</context>
|
||||
<context name="Column0Spaces" lineEndContext="#pop!Column0" attribute="Column 0 Separator" fallthroughContext="#pop!Column1">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column1" lineEndContext="#pop!Column0" attribute="Column 1">
|
||||
<DetectChar char=" " context="#pop!Column1Spaces" attribute="Column 1 Separator"/>
|
||||
</context>
|
||||
<context name="Column1Spaces" lineEndContext="#pop!Column0" attribute="Column 1 Separator" fallthroughContext="#pop!Column2">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column2" lineEndContext="#pop!Column0" attribute="Column 2">
|
||||
<DetectChar char=" " context="#pop!Column2Spaces" attribute="Column 2 Separator"/>
|
||||
</context>
|
||||
<context name="Column2Spaces" lineEndContext="#pop!Column0" attribute="Column 2 Separator" fallthroughContext="#pop!Column3">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column3" lineEndContext="#pop!Column0" attribute="Column 3">
|
||||
<DetectChar char=" " context="#pop!Column3Spaces" attribute="Column 3 Separator"/>
|
||||
</context>
|
||||
<context name="Column3Spaces" lineEndContext="#pop!Column0" attribute="Column 3 Separator" fallthroughContext="#pop!Column4">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column4" lineEndContext="#pop!Column0" attribute="Column 4">
|
||||
<DetectChar char=" " context="#pop!Column4Spaces" attribute="Column 4 Separator"/>
|
||||
</context>
|
||||
<context name="Column4Spaces" lineEndContext="#pop!Column0" attribute="Column 4 Separator" fallthroughContext="#pop!Column5">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column5" lineEndContext="#pop!Column0" attribute="Column 5">
|
||||
<DetectChar char=" " context="#pop!Column5Spaces" attribute="Column 5 Separator"/>
|
||||
</context>
|
||||
<context name="Column5Spaces" lineEndContext="#pop!Column0" attribute="Column 5 Separator" fallthroughContext="#pop!Column6">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column6" lineEndContext="#pop!Column0" attribute="Column 6">
|
||||
<DetectChar char=" " context="#pop!Column6Spaces" attribute="Column 6 Separator"/>
|
||||
</context>
|
||||
<context name="Column6Spaces" lineEndContext="#pop!Column0" attribute="Column 6 Separator" fallthroughContext="#pop!Column7">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column7" lineEndContext="#pop!Column0" attribute="Column 7">
|
||||
<DetectChar char=" " context="#pop!Column7Spaces" attribute="Column 7 Separator"/>
|
||||
</context>
|
||||
<context name="Column7Spaces" lineEndContext="#pop!Column0" attribute="Column 7 Separator" fallthroughContext="#pop!Column8">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column8" lineEndContext="#pop!Column0" attribute="Column 8">
|
||||
<DetectChar char=" " context="#pop!Column8Spaces" attribute="Column 8 Separator"/>
|
||||
</context>
|
||||
<context name="Column8Spaces" lineEndContext="#pop!Column0" attribute="Column 8 Separator" fallthroughContext="#pop!Column9">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
|
||||
<context name="Column9" lineEndContext="#pop!Column0" attribute="Column 9">
|
||||
<DetectChar char=" " context="#pop!Column9Spaces" attribute="Column 9 Separator"/>
|
||||
</context>
|
||||
<context name="Column9Spaces" lineEndContext="#pop!Column0" attribute="Column 9 Separator" fallthroughContext="#pop!Column0">
|
||||
<DetectChar char=" "/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Column 0" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9" defStyleNum="dsDataType"/>
|
||||
|
||||
<itemData name="Column 0 Separator" bold="1" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1 Separator" bold="1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2 Separator" bold="1" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3 Separator" bold="1" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4 Separator" bold="1" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5 Separator" bold="1" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6 Separator" bold="1" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7 Separator" bold="1" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8 Separator" bold="1" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9 Separator" bold="1" defStyleNum="dsDataType"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!ENTITY sep ",">
|
||||
]>
|
||||
<!--
|
||||
Inspired by Rainbow CSV
|
||||
|
||||
Language name | Separator | Extension | Properties
|
||||
CSV | , (comma) | .csv | Ignored inside double-quoted fields
|
||||
TSV | \t (TAB) | .tsv .tab |
|
||||
CSV (semicolon) | ; (semicolon) | | Ignored inside double-quoted fields
|
||||
CSV (whitespace) | whitespace | | Consecutive whitespaces are merged
|
||||
CSV (pipe) | | (pipe) |
|
||||
-->
|
||||
<language name="CSV" section="Other" version="1" kateversion="5.62" extensions="*.csv" mimetype="text/csv" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
|
||||
<highlighting>
|
||||
|
||||
<contexts>
|
||||
<context name="Column0" lineEndContext="#stay" attribute="Column 0">
|
||||
<DetectChar char="&sep;" context="#pop!Column1" attribute="Column 0 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column0Quote"/>
|
||||
<DetectChar char=""" context="Column0MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column0Quote" lineEndContext="#pop" attribute="Column 0" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column0MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column0MultiLine" lineEndContext="#stay" attribute="Column 0">
|
||||
<DetectChar char=""" context="#pop!Column0Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column1" lineEndContext="#pop!Column0" attribute="Column 1">
|
||||
<DetectChar char="&sep;" context="#pop!Column2" attribute="Column 1 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column1Quote"/>
|
||||
<DetectChar char=""" context="Column1MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column1Quote" lineEndContext="#pop#pop!Column0" attribute="Column 1" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column1MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column1MultiLine" lineEndContext="#stay" attribute="Column 1">
|
||||
<DetectChar char=""" context="#pop!Column1Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column2" lineEndContext="#pop!Column0" attribute="Column 2">
|
||||
<DetectChar char="&sep;" context="#pop!Column3" attribute="Column 2 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column2Quote"/>
|
||||
<DetectChar char=""" context="Column2MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column2Quote" lineEndContext="#pop#pop!Column0" attribute="Column 2" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column2MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column2MultiLine" lineEndContext="#stay" attribute="Column 2">
|
||||
<DetectChar char=""" context="#pop!Column2Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column3" lineEndContext="#pop!Column0" attribute="Column 3">
|
||||
<DetectChar char="&sep;" context="#pop!Column4" attribute="Column 3 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column3Quote"/>
|
||||
<DetectChar char=""" context="Column3MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column3Quote" lineEndContext="#pop#pop!Column0" attribute="Column 3" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column3MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column3MultiLine" lineEndContext="#stay" attribute="Column 3">
|
||||
<DetectChar char=""" context="#pop!Column3Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column4" lineEndContext="#pop!Column0" attribute="Column 4">
|
||||
<DetectChar char="&sep;" context="#pop!Column5" attribute="Column 4 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column4Quote"/>
|
||||
<DetectChar char=""" context="Column4MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column4Quote" lineEndContext="#pop#pop!Column0" attribute="Column 4" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column4MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column4MultiLine" lineEndContext="#stay" attribute="Column 4">
|
||||
<DetectChar char=""" context="#pop!Column4Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column5" lineEndContext="#pop!Column0" attribute="Column 5">
|
||||
<DetectChar char="&sep;" context="#pop!Column6" attribute="Column 5 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column5Quote"/>
|
||||
<DetectChar char=""" context="Column5MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column5Quote" lineEndContext="#pop#pop!Column0" attribute="Column 5" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column5MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column5MultiLine" lineEndContext="#stay" attribute="Column 5">
|
||||
<DetectChar char=""" context="#pop!Column5Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column6" lineEndContext="#pop!Column0" attribute="Column 6">
|
||||
<DetectChar char="&sep;" context="#pop!Column7" attribute="Column 6 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column6Quote"/>
|
||||
<DetectChar char=""" context="Column6MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column6Quote" lineEndContext="#pop#pop!Column0" attribute="Column 6" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column6MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column6MultiLine" lineEndContext="#stay" attribute="Column 6">
|
||||
<DetectChar char=""" context="#pop!Column6Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column7" lineEndContext="#pop!Column0" attribute="Column 7">
|
||||
<DetectChar char="&sep;" context="#pop!Column8" attribute="Column 7 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column7Quote"/>
|
||||
<DetectChar char=""" context="Column7MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column7Quote" lineEndContext="#pop#pop!Column0" attribute="Column 7" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column7MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column7MultiLine" lineEndContext="#stay" attribute="Column 7">
|
||||
<DetectChar char=""" context="#pop!Column7Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column8" lineEndContext="#pop!Column0" attribute="Column 8">
|
||||
<DetectChar char="&sep;" context="#pop!Column9" attribute="Column 8 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column8Quote"/>
|
||||
<DetectChar char=""" context="Column8MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column8Quote" lineEndContext="#pop#pop!Column0" attribute="Column 8" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column8MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column8MultiLine" lineEndContext="#stay" attribute="Column 8">
|
||||
<DetectChar char=""" context="#pop!Column8Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="Column9" lineEndContext="#pop!Column0" attribute="Column 9">
|
||||
<DetectChar char="&sep;" context="#pop!Column0" attribute="Column 9 Separator"/>
|
||||
<RangeDetect char=""" char1=""" context="Column9Quote"/>
|
||||
<DetectChar char=""" context="Column9MultiLine"/>
|
||||
<IncludeRules context="FindField"/>
|
||||
</context>
|
||||
<context name="Column9Quote" lineEndContext="#pop!Column0" attribute="Column 9" fallthroughContext="#pop">
|
||||
<RangeDetect char=""" char1="""/>
|
||||
<DetectChar char=""" context="#pop!Column9MultiLine"/>
|
||||
<IncludeRules context="Error"/>
|
||||
</context>
|
||||
<context name="Column9MultiLine" lineEndContext="#stay" attribute="Column 9">
|
||||
<DetectChar char=""" context="#pop!Column9Quote"/>
|
||||
</context>
|
||||
|
||||
<context name="FindField" lineEndContext="#stay" attribute="Column 0">
|
||||
<RegExpr String="[^&sep;]+"/>
|
||||
</context>
|
||||
|
||||
<context name="Error" lineEndContext="#stay" attribute="Error">
|
||||
<RegExpr String="[^&sep;]+" context="#pop" attribute="Error"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Column 0" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9" defStyleNum="dsDataType"/>
|
||||
|
||||
<itemData name="Column 0 Separator" bold="1" defStyleNum="dsNormal"/>
|
||||
<itemData name="Column 1 Separator" bold="1" defStyleNum="dsVariable"/>
|
||||
<itemData name="Column 2 Separator" bold="1" defStyleNum="dsString"/>
|
||||
<itemData name="Column 3 Separator" bold="1" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Column 4 Separator" bold="1" defStyleNum="dsPreprocessor"/>
|
||||
<itemData name="Column 5 Separator" bold="1" defStyleNum="dsChar"/>
|
||||
<itemData name="Column 6 Separator" bold="1" defStyleNum="dsFunction"/>
|
||||
<itemData name="Column 7 Separator" bold="1" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Column 8 Separator" bold="1" defStyleNum="dsOperator"/>
|
||||
<itemData name="Column 9 Separator" bold="1" defStyleNum="dsDataType"/>
|
||||
|
||||
<itemData name="Error" defStyleNum="dsError"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
@@ -0,0 +1,450 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
This is an attempt to write a quick and dirty syntax file for Cubescript.
|
||||
This will only document a subset of available keywords and internal commands, partly due to the various forks and the little overlap they have.
|
||||
Some effort has been taken to highlight and mark errors where possible.
|
||||
|
||||
List values which are current ignored by the keyword identifier are commented.
|
||||
-->
|
||||
<language name="CubeScript" section="Scripts" version="5" kateversion="5.0" extensions="*.cfg" mimetype="" casesensitive="true" author="Kevin Meyer" license="zlib/libpng" indenter="normal">
|
||||
<highlighting>
|
||||
<!--
|
||||
There are far more commands than these, these are just guaranteed to be in all forks.
|
||||
-->
|
||||
<list name="commands">
|
||||
<item>?</item>
|
||||
<item>alias</item>
|
||||
<item>at</item>
|
||||
<item>case</item>
|
||||
<item>casef</item>
|
||||
<item>cases</item>
|
||||
<item>clearconsole</item>
|
||||
<item>clearsleep</item>
|
||||
<item>complete</item>
|
||||
<item>concat</item>
|
||||
<item>concatword</item>
|
||||
<item>cond</item>
|
||||
<item>conskip</item>
|
||||
<item>do</item>
|
||||
<item>echo</item>
|
||||
<item>error</item>
|
||||
<item>escape</item>
|
||||
<item>exec</item>
|
||||
<item>format</item>
|
||||
<item>getalias</item>
|
||||
<item>getfvarmin</item>
|
||||
<item>getfvarmax</item>
|
||||
<item>getvarmin</item>
|
||||
<item>getvarmax</item>
|
||||
<item>history</item>
|
||||
<item>if</item>
|
||||
<item>indexof</item>
|
||||
<item>inputcommand</item>
|
||||
<item>keymap</item>
|
||||
<item>listcomplete</item>
|
||||
<item>listdel</item>
|
||||
<item>listfind</item>
|
||||
<item>listlen</item>
|
||||
<item>listsplice</item>
|
||||
<item>local</item>
|
||||
<item>loop</item>
|
||||
<item>loopconcat</item>
|
||||
<item>loopconcatword</item>
|
||||
<item>loopfiles</item>
|
||||
<item>looplist</item>
|
||||
<item>loopwhile</item>
|
||||
<item>miniconskip</item>
|
||||
<item>nodebug</item>
|
||||
<item>onrelease</item>
|
||||
<item>prettylist</item>
|
||||
<item>push</item>
|
||||
<item>resetvar</item>
|
||||
<item>result</item>
|
||||
<item>rnd</item>
|
||||
<item>saycommand</item>
|
||||
<item>searchbinds</item>
|
||||
<item>searcheditbinds</item>
|
||||
<item>searchspecbinds</item>
|
||||
<item>sleep</item>
|
||||
<item>strcmp</item>
|
||||
<item>strlen</item>
|
||||
<item>strreplace</item>
|
||||
<item>strstr</item>
|
||||
<item>sublist</item>
|
||||
<item>substr</item>
|
||||
<item>tabify</item>
|
||||
<item>toggleconsole</item>
|
||||
<item>unescape</item>
|
||||
<item>while</item>
|
||||
<item>writecfg</item>
|
||||
</list>
|
||||
<list name="bindcommands">
|
||||
<item>bind</item>
|
||||
<item>editbind</item>
|
||||
<item>specbind</item>
|
||||
<item>getbind</item>
|
||||
<item>geteditbind</item>
|
||||
<item>getspecbind</item>
|
||||
</list>
|
||||
<list name="operators">
|
||||
<!--
|
||||
listed in the same order as in src/engine/command.cpp
|
||||
Includes all available operators, both basic and advanced
|
||||
-->
|
||||
<item>+</item>
|
||||
<item>*</item>
|
||||
<item>-</item>
|
||||
<item>+f</item>
|
||||
<item>*f</item>
|
||||
<item>-f</item>
|
||||
<item>=</item>
|
||||
<item>!=</item>
|
||||
<item>></item>
|
||||
<item><</item>
|
||||
<item>>=</item>
|
||||
<item><=</item>
|
||||
<item>=f</item>
|
||||
<item>!=f</item>
|
||||
<item>>f</item>
|
||||
<item><f</item>
|
||||
<item>>=f</item>
|
||||
<item><=f</item>
|
||||
<item>^</item>
|
||||
<item>!</item>
|
||||
<item>&</item>
|
||||
<item>|</item>
|
||||
<item>~</item>
|
||||
<item>^~</item>
|
||||
<item>&~</item>
|
||||
<item>|~</item>
|
||||
<item><<</item>
|
||||
<item>>></item>
|
||||
<item>&&</item>
|
||||
<item>||</item>
|
||||
<item>abs</item>
|
||||
<item>absf</item>
|
||||
<item>div</item>
|
||||
<item>mod</item>
|
||||
<item>divf</item>
|
||||
<item>modf</item>
|
||||
<item>sin</item>
|
||||
<item>cos</item>
|
||||
<item>tan</item>
|
||||
<item>asin</item>
|
||||
<item>acos</item>
|
||||
<item>atan</item>
|
||||
<item>sqrt</item>
|
||||
<item>pow</item>
|
||||
<item>loge</item>
|
||||
<item>log2</item>
|
||||
<item>log10</item>
|
||||
<item>exp</item>
|
||||
<item>min</item>
|
||||
<item>max</item>
|
||||
<item>minf</item>
|
||||
<item>maxf</item>
|
||||
<item>=s</item>
|
||||
<item>!=s</item>
|
||||
<item><s</item>
|
||||
<item>>s</item>
|
||||
<item><=s</item>
|
||||
<item>>=s</item>
|
||||
</list>
|
||||
<list name="keys">
|
||||
<!-- SDL 2.0 Standard Mose Buttons -->
|
||||
<item>MOUSELEFT</item>
|
||||
<item>MOUSEMIDDLE</item>
|
||||
<item>MOUSERIGHT</item>
|
||||
<item>MOUSEWHEELUP</item>
|
||||
<item>MOUSEWHEELDOWN</item>
|
||||
<item>MOUSEX1</item>
|
||||
<item>MOUSEX2</item>
|
||||
|
||||
<!-- SDL 1.2, Standard Mouse Buttons -->
|
||||
<item>MOUSE1</item>
|
||||
<item>MOUSE2</item>
|
||||
<item>MOUSE3</item>
|
||||
<item>MOUSE4</item>
|
||||
<item>MOUSE5</item>
|
||||
|
||||
|
||||
<item>BACKSPACE</item>
|
||||
<item>TAB</item>
|
||||
<item>CLEAR</item>
|
||||
<item>RETURN</item>
|
||||
<item>PAUSE</item>
|
||||
<item>ESCAPE</item>
|
||||
<item>SPACE</item>
|
||||
<item>EXCLAIM</item>
|
||||
<item>QUOTEDBL</item>
|
||||
<item>HASH</item>
|
||||
<item>DOLLAR</item>
|
||||
<item>AMPERSAND</item>
|
||||
<item>QUOTE</item>
|
||||
<item>LEFTPAREN</item>
|
||||
<item>RIGHTPAREN</item>
|
||||
<item>ASTERISK</item>
|
||||
<item>PLUS</item>
|
||||
<item>COMMA</item>
|
||||
<item>MINUS</item>
|
||||
<item>PERIOD</item>
|
||||
<item>SLASH</item>
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
<item>6</item>
|
||||
<item>7</item>
|
||||
<item>8</item>
|
||||
<item>9</item>
|
||||
<item>COLON</item>
|
||||
<item>SEMICOLON</item>
|
||||
<item>LESS</item>
|
||||
<item>EQUALS</item>
|
||||
<item>GREATER</item>
|
||||
<item>QUESTION</item>
|
||||
<item>AT</item>
|
||||
<item>LEFTBRACKET</item>
|
||||
<item>BACKSLASH</item>
|
||||
<item>RIGHTBRACKET</item>
|
||||
<item>CARET</item>
|
||||
<item>UNDERSCORE</item>
|
||||
<item>BACKQUOTE</item>
|
||||
<item>A</item>
|
||||
<item>B</item>
|
||||
<item>C</item>
|
||||
<item>D</item>
|
||||
<item>E</item>
|
||||
<item>F</item>
|
||||
<item>G</item>
|
||||
<item>H</item>
|
||||
<item>I</item>
|
||||
<item>J</item>
|
||||
<item>K</item>
|
||||
<item>L</item>
|
||||
<item>M</item>
|
||||
<item>N</item>
|
||||
<item>O</item>
|
||||
<item>P</item>
|
||||
<item>Q</item>
|
||||
<item>R</item>
|
||||
<item>S</item>
|
||||
<item>T</item>
|
||||
<item>U</item>
|
||||
<item>V</item>
|
||||
<item>W</item>
|
||||
<item>X</item>
|
||||
<item>Y</item>
|
||||
<item>Z</item>
|
||||
<item>DELETE</item>
|
||||
<item>KP0</item>
|
||||
<item>KP1</item>
|
||||
<item>KP2</item>
|
||||
<item>KP3</item>
|
||||
<item>KP4</item>
|
||||
<item>KP5</item>
|
||||
<item>KP6</item>
|
||||
<item>KP7</item>
|
||||
<item>KP8</item>
|
||||
<item>KP9</item>
|
||||
<item>KP_PERIOD</item>
|
||||
<item>KP_DIVIDE</item>
|
||||
<item>KP_MULTIPLY</item>
|
||||
<item>KP_MINUS</item>
|
||||
<item>KP_PLUS</item>
|
||||
<item>KP_ENTER</item>
|
||||
<item>KP_EQUALS</item>
|
||||
<item>UP</item>
|
||||
<item>DOWN</item>
|
||||
<item>RIGHT</item>
|
||||
<item>LEFT</item>
|
||||
<item>INSERT</item>
|
||||
<item>HOME</item>
|
||||
<item>END</item>
|
||||
<item>PAGEUP</item>
|
||||
<item>PAGEDOWN</item>
|
||||
<item>F1</item>
|
||||
<item>F2</item>
|
||||
<item>F3</item>
|
||||
<item>F4</item>
|
||||
<item>F5</item>
|
||||
<item>F6</item>
|
||||
<item>F7</item>
|
||||
<item>F8</item>
|
||||
<item>F9</item>
|
||||
<item>F10</item>
|
||||
<item>F11</item>
|
||||
<item>F12</item>
|
||||
<item>F13</item>
|
||||
<item>F14</item>
|
||||
<item>F15</item>
|
||||
<item>NUMLOCK</item>
|
||||
<item>CAPSLOCK</item>
|
||||
<item>SCROLLOCK</item>
|
||||
<item>RSHIFT</item>
|
||||
<item>LSHIFT</item>
|
||||
<item>RCTRL</item>
|
||||
<item>LCTRL</item>
|
||||
<item>RALT</item>
|
||||
<item>LALT</item>
|
||||
<item>RMETA</item>
|
||||
<item>LMETA</item>
|
||||
<item>LSUPER</item>
|
||||
<item>RSUPER</item>
|
||||
<item>MODE</item>
|
||||
<item>COMPOSE</item>
|
||||
<item>HELP</item>
|
||||
<item>PRINT</item>
|
||||
<item>SYSREQ</item>
|
||||
<item>BREAK</item>
|
||||
<item>MENU</item>
|
||||
</list>
|
||||
<!-- Reserved aliases. -->
|
||||
<list name="aliases">
|
||||
<item>commandbuf</item>
|
||||
<item>editing</item>
|
||||
<item>mainmenu</item>
|
||||
<item>numargs</item>
|
||||
</list>
|
||||
<!--
|
||||
TODO list for Cubescript contexts
|
||||
1) Add GLSL support for shader commands, It's vanilla GLSL, the cubescript witchcraft aside.
|
||||
2) Improve alias highlighting eg foo@[bar]baz; do not highlight baz, but make sure to still highlight all of $foo[bar]baz, will probably need a special context.
|
||||
|
||||
-->
|
||||
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal" lineEndContext="#stay">
|
||||
<AnyChar attribute="Error" context="#stay" String="])"/>
|
||||
<IncludeRules context="__Basic" />
|
||||
</context>
|
||||
|
||||
<context name="Block" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="Brackets" context="#pop" char="]" endRegion="Block" />
|
||||
<DetectChar attribute="Error" context="#stay" char=")"/>
|
||||
<IncludeRules context="__Basic" />
|
||||
</context>
|
||||
|
||||
<context name="Brackets" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="Error" context="#stay" char="]"/>
|
||||
<DetectChar attribute="Brackets" context="#pop" char=")"/>
|
||||
<IncludeRules context="__Basic" />
|
||||
</context>
|
||||
|
||||
<context name="__Basic" attribute="Normal" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="/"/>
|
||||
<DetectChar attribute="Brackets" context="Block" char="[" beginRegion="Block" />
|
||||
<DetectChar attribute="Brackets" context="Brackets" char="(" />
|
||||
<DetectChar attribute="String" context="String" char=""" />
|
||||
<AnyChar lookAhead="true" context="Lookup" String="$@" />
|
||||
<keyword attribute="Keyword" context="#stay" String="commands"/>
|
||||
<keyword attribute="Operator" context="#stay" String="operators"/>
|
||||
<keyword attribute="Keyword" context="Bind" String="bindcommands" />
|
||||
<HlCHex attribute="IntOther" context="#stay"/>
|
||||
<HlCOct attribute="IntOther" context="#stay"/>
|
||||
<Float attribute="Float" context="#stay" />
|
||||
<Int attribute="Int10" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="__Lookup" attribute="Lookup" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="String" char=""" />
|
||||
<DetectChar attribute="LookupBrackets" context="LookupEncBlock" char="[" />
|
||||
<DetectChar attribute="LookupBrackets" context="LookupEncBrackets" char="(" />
|
||||
<RegExpr attribute="Error" context="#stay" String="[^\$\s]+\$[^\[\]\(\)\s]*|\S+(?![\s\[\(])[^\$@](?=[\[\(])" />
|
||||
<RegExpr attribute="Key" context="#stay" String="[@\$]*arg[0-9]+" />
|
||||
</context>
|
||||
|
||||
<context name="Lookup" attribute="Lookup" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Normal" context="#pop" />
|
||||
<AnyChar lookAhead="true" context="#pop" String=")];" />
|
||||
<Detect2Chars lookAhead="true" context="#pop" char="/" char1="/"/>
|
||||
<keyword attribute="Key" context="#stay" String="aliases" />
|
||||
<IncludeRules context="__Lookup" />
|
||||
</context>
|
||||
|
||||
<context name="LookupEncBrackets" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectChar attribute="LookupBrackets" context="#pop" char=")" />
|
||||
<DetectChar attribute="Error" context="#stay" char="]" />
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="/"/>
|
||||
<IncludeRules context="__Basic" />
|
||||
</context>
|
||||
|
||||
<context name="LookupEncBlock" attribute="Lookup" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="/"/>
|
||||
<DetectChar attribute="Error" context="#stay" char=")" />
|
||||
<DetectChar attribute="LookupBrackets" context="#pop" char="]" />
|
||||
<keyword attribute="Key" context="#stay" String="aliases" />
|
||||
<IncludeRules context="__Lookup" />
|
||||
</context>
|
||||
|
||||
<context name="String" attribute="String" lineEndContext="#pop">
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
<!-- Escape newlines. -->
|
||||
<LineContinue attribute="Escaped" context="#stay" char="^" />
|
||||
<DetectChar attribute="Escaped" context="Escaped" char="^" />
|
||||
</context>
|
||||
|
||||
<context name="Escaped" attribute="Escaped" lineEndContext="#stay" >
|
||||
<!-- Cubescript treats any character following a "^" in a string is escaped. -->
|
||||
<Detect2Chars char="f" char1="0" attribute="String0" context="#pop"/>
|
||||
<Detect2Chars char="f" char1="1" attribute="String1" context="#pop"/>
|
||||
<Detect2Chars char="f" char1="2" attribute="String2" context="#pop"/>
|
||||
<Detect2Chars char="f" char1="3" attribute="String3" context="#pop"/>
|
||||
<Detect2Chars char="f" char1="4" attribute="String4" context="#pop"/>
|
||||
<Detect2Chars char="f" char1="5" attribute="String5" context="#pop"/>
|
||||
<Detect2Chars char="f" char1="6" attribute="String6" context="#pop"/>
|
||||
<Detect2Chars char="f" char1="7" attribute="String7" context="#pop"/>
|
||||
<RegExpr String="f?." attribute="Escaped" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Bind" attribute="Error" lineEndContext="#pop">
|
||||
<DetectSpaces attribute="Normal" />
|
||||
<AnyChar lookAhead="true" context="#pop" String="[]();"$@" />
|
||||
<keyword insensitive="true" attribute="Key" context="#pop" String="keys" />
|
||||
<Detect2Chars lookAhead="true" context="#pop" char="/" char1="/"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Lookup" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
<itemData name="Int10" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="IntOther" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Escaped" defStyleNum="dsChar" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Keyword" defStyleNum="dsFunction" spellChecking="false"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
|
||||
<itemData name="Key" defStyleNum="dsOthers" spellChecking="false"/>
|
||||
<itemData name="LookupBrackets" defStyleNum="dsRegionMarker" spellChecking="false"/>
|
||||
<itemData name="Brackets" defStyleNum="dsNormal" bold="1" spellChecking="false"/>
|
||||
<!-- These are for the ^f# format tokens, the background colour is explicitly set to try and guarantee visibility at all times -->
|
||||
<itemData name="String0" defStyleNum="dsString" bold="1" color="#40FF80" backgroundColor="#3F3F3F" spellChecking="false"/>
|
||||
<itemData name="String1" defStyleNum="dsString" bold="1" color="#60A0FF" backgroundColor="#DFDFDF" spellChecking="false"/>
|
||||
<itemData name="String2" defStyleNum="dsString" bold="1" color="#FFC040" backgroundColor="#3F3F3F" spellChecking="false"/>
|
||||
<itemData name="String3" defStyleNum="dsString" bold="1" color="#FF4040" backgroundColor="#DFDFDF" spellChecking="false"/>
|
||||
<itemData name="String4" defStyleNum="dsString" bold="1" color="#808080" backgroundColor="#DFDFDF" spellChecking="false"/>
|
||||
<itemData name="String5" defStyleNum="dsString" bold="1" color="#A040A0" backgroundColor="#DFDFDF" spellChecking="false"/>
|
||||
<itemData name="String6" defStyleNum="dsString" bold="1" color="#FF8000" backgroundColor="#DFDFDF" spellChecking="false"/>
|
||||
<itemData name="String7" defStyleNum="dsString" bold="1" color="#FFFFFF" backgroundColor="#3F3F3F" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="true" wordWrapDeliminator="[(;" additionalDeliminator="$@" weakDeliminator="!=<>|&^~+*"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" />
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!--
|
||||
// kate: space-indent on; indent-width 2; replace-tabs on;
|
||||
-->
|
||||
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="CUE Sheet" version="3" kateversion="5.0" section="Other" extensions="*.cue" mimetype="application/x-cue">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>CATALOG</item>
|
||||
<item>CDTEXTFILE</item>
|
||||
<item>FILE</item>
|
||||
<item>FLAGS</item>
|
||||
<item>INDEX</item>
|
||||
<item>ISRC</item>
|
||||
<item>PERFORMER</item>
|
||||
<item>PREGAP</item>
|
||||
<item>POSTGAP</item>
|
||||
<item>REM</item>
|
||||
<item>SONGWRITER</item>
|
||||
<item>TITLE</item>
|
||||
<item>TRACK</item>
|
||||
</list>
|
||||
<list name="format">
|
||||
<item>AIFF</item>
|
||||
<item>WAVE</item>
|
||||
<item>MP3</item>
|
||||
<item>BINARY</item>
|
||||
<item>MOTOTOLA</item>
|
||||
</list>
|
||||
<list name="mode">
|
||||
<item>AUDIO</item>
|
||||
<item>CDG</item>
|
||||
<item>CDI</item>
|
||||
<item>MODE1</item>
|
||||
<item>MODE2</item>
|
||||
<item>RAW</item>
|
||||
</list>
|
||||
<list name="flags">
|
||||
<item>4CH</item>
|
||||
<item>DCP</item>
|
||||
<item>PRE</item>
|
||||
<item>SCMS</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<keyword attribute="Format" context="#stay" String="format" />
|
||||
<keyword attribute="Mode" context="#stay" String="mode" />
|
||||
<keyword attribute="Flags" context="#stay" String="flags" />
|
||||
<Int attribute="Decimal" context="#stay" />
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<DetectChar attribute="Comment" context="Comment" char=";"/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<LineContinue attribute="String" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Format" defStyleNum="dsImport"/>
|
||||
<itemData name="Mode" defStyleNum="dsVariable"/>
|
||||
<itemData name="Flags" defStyleNum="dsOthers"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start=";" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,360 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!-- qualification of entities -->
|
||||
<!ENTITY qualify "(?:[A-Z][a-zA-Z0-9_']*\.)*">
|
||||
<!-- identifier -->
|
||||
<!ENTITY ident "[a-z][a-zA-Z0-9_']*">
|
||||
<!-- Type -->
|
||||
<!ENTITY type "[A-Z][a-zA-Z0-9_']*">
|
||||
<!-- infix operator characters -->
|
||||
<!ENTITY infixchar "~!@#\$%\^&\*\+\-=<>\?\./\|&backslash;:">
|
||||
<!-- identifier in prefix notation, e.g.: id, ($) -->
|
||||
<!ENTITY prefixIdent "(?:&ident;|\([&infixchar;]+\))">
|
||||
|
||||
<!-- Characters allowed in character escape sequence, e.g., \n -->
|
||||
<!ENTITY escSeqChar "abfnrtv\"'" >
|
||||
<!-- Ascii escape sequence, e.g., \NUL -->
|
||||
<!ENTITY escSeqAscii "NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL" >
|
||||
<!-- Control escape sequence, e.g., \^X -->
|
||||
<!ENTITY escSeqCntrl "\^[A-Z@\[&backslash;\]\^_]" >
|
||||
|
||||
<!-- octal number -->
|
||||
<!ENTITY octal "[0-7]+" >
|
||||
<!-- decimal number -->
|
||||
<!ENTITY decimal "[0-9]+" >
|
||||
<!-- hexadecimal number -->
|
||||
<!ENTITY hexadecimal "[0-9a-fA-F]+" >
|
||||
<!-- a backslash, escaped for use in regular expressions -->
|
||||
<!ENTITY backslash "\\" >
|
||||
<!-- dashes introducing a currydoc comment -->
|
||||
<!ENTITY currydoc "---" >
|
||||
]>
|
||||
<language name="Curry" version="4" kateversion="5.0"
|
||||
section="Sources" extensions="*.curry" mimetype="text/x-curry"
|
||||
author="Björn Peemöller (bjp@informatik.uni-kiel.de)" license="LGPL"
|
||||
indenter="haskell">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>case</item>
|
||||
<item>data</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>external</item>
|
||||
<item>fcase</item>
|
||||
<item>free</item>
|
||||
<item>if</item>
|
||||
<!-- Although import is a keyword, it is handled in a special context
|
||||
to highlight "qualified", "as" and "hiding" in keyword style,
|
||||
albeit these lexemes are no keywords.
|
||||
<item>import</item>
|
||||
-->
|
||||
<item>in</item>
|
||||
<item>infix</item>
|
||||
<item>infixl</item>
|
||||
<item>infixr</item>
|
||||
<item>let</item>
|
||||
<item>module</item>
|
||||
<item>of</item>
|
||||
<item>then</item>
|
||||
<item>type</item>
|
||||
<item>where</item>
|
||||
</list>
|
||||
<list name="Prelude Func">
|
||||
<item>and</item>
|
||||
<item>all</item>
|
||||
<item>any</item>
|
||||
<item>appendFile</item>
|
||||
<item>best</item>
|
||||
<item>break</item>
|
||||
<item>browse</item>
|
||||
<item>browseList</item>
|
||||
<item>chr</item>
|
||||
<item>concat</item>
|
||||
<item>concatMap</item>
|
||||
<item>const</item>
|
||||
<item>curry</item>
|
||||
<item>div</item>
|
||||
<item>done</item>
|
||||
<item>doSolve</item>
|
||||
<item>drop</item>
|
||||
<item>dropWhile</item>
|
||||
<item>either</item>
|
||||
<item>elem</item>
|
||||
<item>ensureNotFree</item>
|
||||
<item>ensureSpine</item>
|
||||
<item>enumFrom</item>
|
||||
<item>enumFromThen</item>
|
||||
<item>enumFromTo</item>
|
||||
<item>enumFromThenTo</item>
|
||||
<item>error</item>
|
||||
<item>failed</item>
|
||||
<item>filter</item>
|
||||
<item>findall</item>
|
||||
<item>flip</item>
|
||||
<item>foldl</item>
|
||||
<item>foldl1</item>
|
||||
<item>foldr</item>
|
||||
<item>foldr1</item>
|
||||
<item>fst</item>
|
||||
<item>getChar</item>
|
||||
<item>getLine</item>
|
||||
<item>id</item>
|
||||
<item>if_then_else</item>
|
||||
<item>iterate</item>
|
||||
<item>head</item>
|
||||
<item>length</item>
|
||||
<item>lines</item>
|
||||
<item>lookup</item>
|
||||
<item>map</item>
|
||||
<item>mapIO</item>
|
||||
<item>mapIO_</item>
|
||||
<item>max</item>
|
||||
<item>maybe</item>
|
||||
<item>min</item>
|
||||
<item>mod</item>
|
||||
<item>negate</item>
|
||||
<item>not</item>
|
||||
<item>notElem</item>
|
||||
<item>null</item>
|
||||
<item>once</item>
|
||||
<item>or</item>
|
||||
<item>ord</item>
|
||||
<item>otherwise</item>
|
||||
<item>print</item>
|
||||
<item>putChar</item>
|
||||
<item>putStr</item>
|
||||
<item>putStrLn</item>
|
||||
<item>readFile</item>
|
||||
<item>repeat</item>
|
||||
<item>replicate</item>
|
||||
<item>return</item>
|
||||
<item>reverse</item>
|
||||
<item>seq</item>
|
||||
<item>sequenceIO</item>
|
||||
<item>sequenceIO_</item>
|
||||
<item>show</item>
|
||||
<item>snd</item>
|
||||
<item>solveAll</item>
|
||||
<item>span</item>
|
||||
<item>splitAt</item>
|
||||
<item>success</item>
|
||||
<item>tail</item>
|
||||
<item>take</item>
|
||||
<item>takeWhile</item>
|
||||
<item>try</item>
|
||||
<item>uncurry</item>
|
||||
<item>unknown</item>
|
||||
<item>unlines</item>
|
||||
<item>unpack</item>
|
||||
<item>until</item>
|
||||
<item>unwords</item>
|
||||
<item>unzip</item>
|
||||
<item>unzip3</item>
|
||||
<item>writeFile</item>
|
||||
<item>words</item>
|
||||
<item>zip</item>
|
||||
<item>zip3</item>
|
||||
<item>zipWith</item>
|
||||
<item>zipWith3</item>
|
||||
</list>
|
||||
<list name="Prelude Type">
|
||||
<item>Bool</item>
|
||||
<item>Char</item>
|
||||
<item>Either</item>
|
||||
<item>Float</item>
|
||||
<item>Int</item>
|
||||
<item>IO</item>
|
||||
<item>Maybe</item>
|
||||
<item>Ordering</item>
|
||||
<item>String</item>
|
||||
<item>Success</item>
|
||||
</list>
|
||||
<list name="Prelude Cons">
|
||||
<item>False</item>
|
||||
<item>True</item>
|
||||
<item>Left</item>
|
||||
<item>Right</item>
|
||||
<item>Just</item>
|
||||
<item>Nothing</item>
|
||||
<item>EQ</item>
|
||||
<item>LT</item>
|
||||
<item>GT</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal" lineEndContext="#stay">
|
||||
<!-- pragmas, currydoc, comments -->
|
||||
<StringDetect attribute="Pragma" context="Pragma" String="{-#" beginRegion="Pragma" />
|
||||
<Detect2Chars attribute="Comment" context="Multiline Comment" char="{" char1="-" beginRegion="Multiline Comment" />
|
||||
<StringDetect attribute="Currydoc" context="Currydoc" String="&currydoc;" />
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="-" char1="-" />
|
||||
|
||||
<!-- keywords, Prelude entities -->
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords" />
|
||||
<keyword attribute="Prelude Function" context="#stay" String="Prelude Func" />
|
||||
<keyword attribute="Prelude Type" context="#stay" String="Prelude Type" />
|
||||
<keyword attribute="Prelude Constructor" context="#stay" String="Prelude Cons" />
|
||||
<RegExpr attribute="Keyword" context="Import" String="import\s+(?:qualified)?" />
|
||||
|
||||
<!-- Literals -->
|
||||
<Float attribute="Float" context="#stay" />
|
||||
<RegExpr attribute="Octal" context="#stay" String="0[oO]&octal;" />
|
||||
<HlCHex attribute="Hex" context="#stay" />
|
||||
<Int attribute="Decimal" context="#stay" />
|
||||
<DetectChar attribute="Char" context="Char" char="'" />
|
||||
<DetectChar attribute="String" context="String" char=""" />
|
||||
|
||||
<!-- Others -->
|
||||
<RegExpr attribute="Special Symbol" context="#stay" String="(?:::|:=|:>|\->|<\-|\.\.)" />
|
||||
<RegExpr attribute="Signature" context="#stay" String="\s*&prefixIdent;\s*(?:,\s*&prefixIdent;)*\s*(?=::[^&infixchar;])" />
|
||||
<RegExpr attribute="Function" context="#stay" String="&qualify;&ident;" />
|
||||
<RegExpr attribute="Operator" context="#stay" String="&qualify;[&infixchar;]+" />
|
||||
<RegExpr attribute="Type, Constructor" context="#stay" String="&qualify;&type;" />
|
||||
<DetectChar attribute="Infix Application" context="Infix" char="`" />
|
||||
|
||||
<!-- Folding of braces -->
|
||||
<DetectChar char="(" context="#stay" beginRegion="nested" attribute="Braces" />
|
||||
<DetectChar char=")" context="#stay" endRegion="nested" attribute="Braces" />
|
||||
<DetectChar char="[" context="#stay" beginRegion="list" attribute="Braces" />
|
||||
<DetectChar char="]" context="#stay" endRegion="list" attribute="Braces" />
|
||||
<DetectChar char="{" context="#stay" beginRegion="curly" attribute="Braces" />
|
||||
<DetectChar char="}" context="#stay" endRegion="curly" attribute="Braces" />
|
||||
</context>
|
||||
|
||||
<!-- Pragma -->
|
||||
<context name="Pragma" attribute="Pragma" lineEndContext="#stay" >
|
||||
<StringDetect attribute="Pragma" context="#pop" String="#-}" endRegion="Pragma" />
|
||||
</context>
|
||||
|
||||
<!-- Multiline comment -->
|
||||
<context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" >
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="Multiline Comment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<!-- Currydoc -->
|
||||
<context name="Currydoc" attribute="Currydoc" lineEndContext="#pop" />
|
||||
|
||||
<!-- Single line comment -->
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<!-- Import section -->
|
||||
<context name="Import" attribute="Normal" lineEndContext="#pop" >
|
||||
<!-- pragmas, currydoc, comments -->
|
||||
<StringDetect attribute="Pragma" context="Pragma" String="{-#" beginRegion="Pragma" />
|
||||
<Detect2Chars attribute="Comment" context="Multiline Comment" char="{" char1="-" beginRegion="Multiline Comment" />
|
||||
<StringDetect attribute="Currydoc" context="Currydoc" String="&currydoc;" />
|
||||
<Detect2Chars attribute="Comment" context="Comment" char="-" char1="-" />
|
||||
|
||||
<RegExpr attribute="Type, Constructor" context="#stay" String="&qualify;&type;" />
|
||||
<Detect2Chars attribute="Keyword" context="#stay" char="a" char1="s" />
|
||||
<StringDetect attribute="Keyword" context="#stay" String="hiding" />
|
||||
<!-- Pop context at open paren to highlight imported entities -->
|
||||
<DetectChar attribute="Braces" context="#pop" char="(" beginRegion="nested" />
|
||||
<RegExpr attribute="Syntax Error" context="#stay" String="\S+" />
|
||||
</context>
|
||||
|
||||
<!-- A single characters, with escape sequences -->
|
||||
<context name="Char" attribute="Char" lineEndContext="CharSyntaxError" >
|
||||
<DetectChar attribute="Syntax Error" context="#pop" char="'" />
|
||||
<DetectChar attribute="Char" context="CharEscape" char="\" />
|
||||
<RegExpr attribute="Char" context="CharEnd" String="[^'&backslash;]" />
|
||||
</context>
|
||||
|
||||
<!-- Character escape sequence -->
|
||||
<context name="CharEscape" attribute="Char" lineEndContext="#pop!CharSyntaxError" >
|
||||
<AnyChar attribute="Char" context="#pop!CharEnd" String="&escSeqChar;" />
|
||||
<RegExpr attribute="Char" context="#pop!CharEnd" String="o&octal;|&decimal;|x&hexadecimal;|&escSeqCntrl;|&escSeqAscii;" />
|
||||
<RegExpr attribute="Syntax Error" context="#pop!CharEnd" String="." />
|
||||
</context>
|
||||
|
||||
<!-- Ending quote of character literal -->
|
||||
<context name="CharEnd" attribute="Char" lineEndContext="#pop!CharSyntaxError" >
|
||||
<DetectChar attribute="Char" context="#pop#pop" char="'" />
|
||||
<RegExpr attribute="Syntax Error" context="#stay" String="." />
|
||||
</context>
|
||||
|
||||
<!-- Character syntax error: Newline inside literal -->
|
||||
<context name="CharSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
|
||||
<DetectChar attribute="Syntax Error" context="#pop#pop" char="'" />
|
||||
</context>
|
||||
|
||||
<!-- A string, with escape sequences -->
|
||||
<context name="String" attribute="String" lineEndContext="StringSyntaxError" >
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
<DetectChar attribute="String Escape" context="StringEscape" char="\" />
|
||||
<RegExpr attribute="String" context="#stay" String="[^"&backslash;]*" />
|
||||
</context>
|
||||
|
||||
<!-- String escape sequence -->
|
||||
<context name="StringEscape" attribute="String" lineEndContext="StringGap" >
|
||||
<AnyChar attribute="String Escape" context="#pop" String="&escSeqChar;&" />
|
||||
<RegExpr attribute="String Escape" context="#pop" String="o&octal;|&decimal;|x&hexadecimal;|&escSeqCntrl;|&escSeqAscii;" />
|
||||
<DetectSpaces attribute="String Escape" context="StringGap" />
|
||||
<RegExpr attribute="Syntax Error" context="#pop" String="." />
|
||||
</context>
|
||||
|
||||
<context name="StringGap" attribute="String" lineEndContext="#stay" >
|
||||
<DetectSpaces attribute="String Escape" context="#stay" />
|
||||
<DetectChar attribute="String Escape" context="#pop#pop#pop!String" char="\" />
|
||||
<DetectChar attribute="Syntax Error" context="#pop#pop#pop" char=""" />
|
||||
<RegExpr attribute="Syntax Error" context="#stay" String="." />
|
||||
</context>
|
||||
|
||||
<!-- String syntax error: Newline inside literal -->
|
||||
<context name="StringSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
|
||||
<DetectChar attribute="Syntax Error" context="#pop#pop" char=""" />
|
||||
</context>
|
||||
|
||||
<!-- Infix application -->
|
||||
<context name="Infix" attribute="Infix Application" lineEndContext="#stay" >
|
||||
<DetectChar attribute="Infix Application" context="#pop" char="`"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="false" />
|
||||
|
||||
<!-- Comments -->
|
||||
<itemData name="Pragma" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Currydoc" defStyleNum="dsDocumentation" />
|
||||
|
||||
<!-- Keywords, predefined entities -->
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Prelude Type" defStyleNum="dsDataType" spellChecking="false" />
|
||||
<itemData name="Prelude Function" defStyleNum="dsFunction" spellChecking="false" />
|
||||
<itemData name="Prelude Constructor" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
|
||||
<!-- Literals -->
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
|
||||
<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Char" defStyleNum="dsChar" spellChecking="false" />
|
||||
<itemData name="String Escape" defStyleNum="dsChar" spellChecking="false" />
|
||||
<itemData name="String" defStyleNum="dsString" />
|
||||
|
||||
<!-- Others -->
|
||||
<itemData name="Braces" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="Signature" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Function" defStyleNum="dsNormal" spellChecking="false" />
|
||||
<itemData name="Operator" defStyleNum="dsFunction" spellChecking="false" />
|
||||
<itemData name="Type, Constructor" defStyleNum="dsDataType" spellChecking="false" />
|
||||
<itemData name="Special Symbol" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Infix Application" defStyleNum="dsOthers" spellChecking="false" />
|
||||
<itemData name="Syntax Error" defStyleNum="dsError" spellChecking="false" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<folding indentationsensitive="1"/>
|
||||
<comments>
|
||||
<comment name="singleLine" start="--" position="afterwhitespace" />
|
||||
<comment name="multiLine" start="{-" end="-}" region="Multiline Comment" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,935 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language [
|
||||
<!ENTITY hexfloat "0[xX][\da-fA-F_]*(?:\.[\da-fA-F_]*)?[pP][-+]?\d[\d_]*[fFL]?i?">
|
||||
<!-- Float starting with a dot is matched in main context -->
|
||||
<!-- All floats except integers -->
|
||||
<!-- RegExpr is branched rather than using look aheads for efficiency at the expense of extra length -->
|
||||
<!ENTITY float "\d[_\d]*(?:\.(?!\.)[_\d]*(?:[eE][-+]?\d[_\d]*)?[fFL]?i?|[eE][-+]?\d[_\d]*[fFL]?i?|[fF]i?|[fFL]?i)">
|
||||
]>
|
||||
<!--
|
||||
========================================================================
|
||||
|
||||
D.XML supports syntax highlighting for the D programming language under Kate.
|
||||
|
||||
Updated 2007-2008 - Diggory Hardy <diggory.hardy@gmail.com> (copyright kate project).
|
||||
Copyright (C) 2007 - Aziz Köksal <aziz.koeksal@gmail.com>
|
||||
Copyright (C) 2007 - Jari-Matti Mäkelä <jmjm@iki.fi>
|
||||
Copyright (C) 2004 - Simon J Mackenzie <project.katedxml@smackoz.fastmail.fm>
|
||||
|
||||
This code is released under the LGPL as part of kdelibs/kate.
|
||||
|
||||
========================================================================
|
||||
|
||||
D is a next generation language written by Walter Bright of Digital Mars fame.
|
||||
Digital Mars C, C++ and D Compilers can be obtained from http://www.digitalmars.com/d/
|
||||
|
||||
========================================================================
|
||||
|
||||
UPDATE HISTORY:-
|
||||
2008.09.22 - d.xml 1.61 - D 1.035/2.019 - Fix for identifiers starting _ and containing numbers.
|
||||
2008.08.01 - d.xml 1.60 - D 1.033/2.017 - Merging ddoc.xml 1.14 since there is no advantage to having it separate.
|
||||
2008.07.14 - uncommited - Added properties: .tupleof, .offsetof
|
||||
2008.06.14 - D.XML 1.53 - D 1.030/2.014 - Added user keyword highlighting.
|
||||
2008.06.06 - D.XML 1.53 - D 1.030/2.014 - Small fix involving floats starting . in embedded Ddoc.
|
||||
- Added nothrow and pure attributes (D2.0 only).
|
||||
2008.04.09 - D.XML 1.52 - D 1.028/2.012 - Added properties (especially for arrays).
|
||||
- Added rules for C-Style indenter (thanks vektorboson!)
|
||||
2008.02.22 - D.XML 1.51 - D 1.027/2.011 - Changed char rule behaviour on line end.
|
||||
- Added support for strings ending with c, w or d (must have got lost at some point).
|
||||
2008.02.22 - ddoc.xml 1.14 - Fixes/improvements for macros. Highlights first symbol and non-symbols
|
||||
before as errors; matches embedded brackets () properly.
|
||||
2008.01.09 - D.XML 1.50 - D 1.025/2.009 - Changed pragma, version, deprecated matching to use keyword not DetectString.
|
||||
2007.12.18 - D.XML 1.49 - D 1.025/2.009 - Fixed some bugs to make the StartingLetter context exit correctly and match identifiers properly.
|
||||
2007.12.12 - D.XML 1.48 - D 1.024/2.008 - Adjusted existing contexts somewhat (mostly cleanup).
|
||||
- Implemented scope context to hightlight exit in scope(exit) etc.
|
||||
- Adjusted deprecated keyword highlighting.
|
||||
- Changed layout somewhat.
|
||||
- Implemented extra highlighting rules for expressions, attributes, etc.
|
||||
- Changed a lot of colours.
|
||||
2007.11.15 - D.XML 1.47 - D 1.023/2.007 - Fixed a few unapperent "bugs" found by checkdtd.
|
||||
2007.11.15 - ddoc.xml 1.13 - Fixed a couple of bugs found by checkdtd and changed the version number format.
|
||||
2007.11.5 - ddoc.xml 1.12 - Fixed: correct matching of things like /***/ .
|
||||
2007.10.11 - ddoc.xml 1.11 - Safety catch: check for unterminated code sections (i.e. check for end of
|
||||
ddoc comment even in code sections).
|
||||
- Used DetectIdentifier to (presumably) improve performance.
|
||||
2007.10.09 - uncommited - ditto - Changed some context="#pop" tags to context="#stay" within the normal
|
||||
context (bugfix for ddoc embedded code highlighting).
|
||||
2007.10.9 - ddoc.xml 1.10 - Enabled embedded ddoc code highlighting
|
||||
2007.10.9 - ddoc.xml 1.00 - Initial version
|
||||
2007.10.08 - D.XML 1.46 - D 1.022/2.005 - Stole Alert and Region Marker highlighting from C++ syntax.
|
||||
- Added support for DDoc highlighting.
|
||||
- Reviewed the float regexps again! Tried to make the best of both versions.
|
||||
2007.09.17 - D.XML 1.45 - D 1.021/2.004 - Reverted back to old regexps (but fixed hex floats).
|
||||
Can't combine all float regexps into a single RegExpr element using the '|' operator.
|
||||
It creates strange problems (like program lock-ups and wrong matches).
|
||||
- Fix: '=' is allowed in import statements now.
|
||||
- Fix: character literals are matched correctly now.
|
||||
- The #line special token sequence is matched fully now (the filespec string needs special handling).
|
||||
2007.09.10 - D.XML 1.44 - D 1.021/2.004 - Added __EOF__ to specialtokens.
|
||||
- Replaced float regexps with more accurate ones. Not sure about speed.
|
||||
- Fixed Octal regexp not to match 0_ .
|
||||
2007.07.24 - D.XML 1.43 - D 1.020/2.003 - Added System to ltypes.
|
||||
- Improved matching of version declarations.
|
||||
- Fixed matching of hexadecimal floats.
|
||||
- Deprecated style is stroked out again.
|
||||
2007.07.21 - D.XML 1.42 - D 1.018/2.002 - d.xml validates again according to language.xml.
|
||||
- HTML entities are highlighted now.
|
||||
- Numbers before and after the slice operator are not highl. as floats anymore.
|
||||
- Added C++ to ltypes.
|
||||
- Improved matching of module/import declarations.
|
||||
2007.07.01 - D.XML 1.41 - D 1.017/2.001 - fixed matching of numbers, added deprecated style, minor changes to styles, updated authors line
|
||||
2007.07.01 - D.XML 1.40 - D 1.017/2.001 - matches now .di extensions, removed phobos-specific printf/writef and added
|
||||
- library defined symbols string, wstring, dstring, size_t, ptrdiff_t, hash_t,
|
||||
- Error, Exception, Object, TypeInfo and ClassInfo
|
||||
2007.06.30 - D.XML 1.39 - D 1.017 - matching is much faster now, added "lib" to pragma types, added special tokens,
|
||||
- /+ +/ can be nested now, numbers are matched more correctly, character literals don't span multiple lines anymore
|
||||
- escape sequences inside strings and character literals are highlighted,
|
||||
- non-hex characters in hex strings are highlighted with the Error style,
|
||||
- using more default styles instead of custom ones
|
||||
2007.04.11 - D.XML 1.38 - D 1.011 - ref, macro keywords are now supported, fixed \\ inside a string, updated author
|
||||
2007.02.12 - D.XML 1.37 - D 1.006 - bool, foreach_reverse, lazy, scope and typeid keywords are now supported, fixed \"
|
||||
- inside a string, fixed ending of wysiwyg strings.
|
||||
2004.08.15 - D.XML 1.36 - D 0.98 - Current release of D.
|
||||
- package, writef(strictly speaking writef isn't a keyword) - keywords are now supported.
|
||||
2004.??.?? - D.XML 1.35 - D 0.?? - Not sure how this release got posted!
|
||||
2004.05.23 - D.XML 1.34 - D 0.90 - updated.
|
||||
2004.05.19 - D.XML 1.33 - D 0.89 - mixin - keyword is now supported.
|
||||
2004.05.19 - D.XML 1.32 - D 0.77 - pragma, typeof - keywords are now supported.
|
||||
2004.05.19 - D.XML 1.31 - D 0.76 - is - keyword is now supported.
|
||||
2003.09.06 - D.XML 1.30 - D 0.71 - foreach - keyword is now supported.
|
||||
2003.08.18 - D.XML 1.20 - D 0.69 - floats are now supported.
|
||||
- embedded underscores in integer and float literals are now supported.
|
||||
2003.08.11 - D.XML 1.10 - updated.
|
||||
2003.07.18 - D.XML 1.00 - First released.
|
||||
|
||||
========================================================================
|
||||
-->
|
||||
|
||||
<language name="D" version="13" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
|
||||
<highlighting>
|
||||
<!-- User-defined keywords (add identifiers you'd like highlighted here) -->
|
||||
<list name="userkeywords">
|
||||
</list>
|
||||
<list name="statements">
|
||||
<item>asm</item>
|
||||
<item>body</item>
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>catch</item>
|
||||
<item>continue</item>
|
||||
<item>default</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>finally</item>
|
||||
<item>for</item>
|
||||
<item>foreach</item>
|
||||
<item>foreach_reverse</item>
|
||||
<item>goto</item>
|
||||
<item>if</item>
|
||||
<item>mixin</item>
|
||||
<item>return</item>
|
||||
<item>switch</item>
|
||||
<item>throw</item>
|
||||
<item>try</item>
|
||||
<item>while</item>
|
||||
<item>with</item>
|
||||
|
||||
<!-- these are statements according to the spec, although I might call them attributes -->
|
||||
<item>synchronized</item>
|
||||
|
||||
</list>
|
||||
|
||||
<list name="attributes">
|
||||
<!-- also storage classes -->
|
||||
<item>abstract</item>
|
||||
<item>align</item>
|
||||
<item>auto</item>
|
||||
<item>const</item>
|
||||
<item>export</item>
|
||||
<item>final</item>
|
||||
<item>immutable</item>
|
||||
<item>inout</item>
|
||||
<item>invariant</item>
|
||||
<item>lazy</item>
|
||||
<item>nothrow</item>
|
||||
<item>override</item>
|
||||
<item>package</item>
|
||||
<item>private</item>
|
||||
<item>protected</item>
|
||||
<item>public</item>
|
||||
<item>pure</item>
|
||||
<item>ref</item>
|
||||
<item>shared</item>
|
||||
<item>static</item>
|
||||
|
||||
<!-- these may be statements -->
|
||||
<!-- in (more common to use as an expression since in attribute is only ever the default) -->
|
||||
<item>out</item>
|
||||
<item>scope</item>
|
||||
|
||||
<item>__gshared</item>
|
||||
</list>
|
||||
|
||||
<list name="expressions">
|
||||
<!-- primary expressions -->
|
||||
<item>false</item>
|
||||
<item>null</item>
|
||||
<item>super</item>
|
||||
<item>this</item>
|
||||
<item>true</item>
|
||||
<item>typeid</item>
|
||||
|
||||
<!-- other expressions -->
|
||||
<item>assert</item>
|
||||
<item>cast</item>
|
||||
<item>is</item>
|
||||
<item>new</item>
|
||||
<item>delete</item>
|
||||
<item>in</item> <!-- also an attribute and a statement -->
|
||||
|
||||
<!-- sometimes declarators -->
|
||||
<item>delegate</item>
|
||||
<item>function</item>
|
||||
</list>
|
||||
|
||||
<list name="modules">
|
||||
<item>module</item>
|
||||
<item>import</item> <!-- also an expression -->
|
||||
</list>
|
||||
|
||||
<list name="declarators">
|
||||
<item>alias</item>
|
||||
<item>enum</item>
|
||||
<item>typedef</item>
|
||||
<item>class</item>
|
||||
<item>interface</item>
|
||||
<item>struct</item>
|
||||
<item>union</item>
|
||||
</list>
|
||||
|
||||
<list name="types">
|
||||
<item>typeof</item>
|
||||
|
||||
<item>void</item>
|
||||
<item>bool</item>
|
||||
<item>byte</item>
|
||||
<item>ubyte</item>
|
||||
<item>short</item>
|
||||
<item>ushort</item>
|
||||
<item>int</item>
|
||||
<item>uint</item>
|
||||
<item>long</item>
|
||||
<item>ulong</item>
|
||||
<item>cent</item>
|
||||
<item>ucent</item>
|
||||
<item>float</item>
|
||||
<item>double</item>
|
||||
<item>real</item>
|
||||
<item>ireal</item>
|
||||
<item>ifloat</item>
|
||||
<item>idouble</item>
|
||||
<item>creal</item>
|
||||
<item>cfloat</item>
|
||||
<item>cdouble</item>
|
||||
<item>char</item>
|
||||
<item>wchar</item>
|
||||
<item>dchar</item>
|
||||
</list>
|
||||
|
||||
<list name="templates">
|
||||
<item>macro</item> <!-- what's this? just reserved? -->
|
||||
<item>template</item>
|
||||
</list>
|
||||
|
||||
<list name="properties">
|
||||
<item>init</item>
|
||||
<item>sizeof</item>
|
||||
<item>alignof</item>
|
||||
<item>mangleof</item>
|
||||
<item>stringof</item>
|
||||
<item>tupleof</item>
|
||||
<item>offsetof</item>
|
||||
<item>max</item>
|
||||
<item>min</item>
|
||||
<item>infinity</item>
|
||||
<item>nan</item>
|
||||
<item>dig</item>
|
||||
<item>epsilon</item>
|
||||
<item>mant_dig</item>
|
||||
<item>max_10_exp</item>
|
||||
<item>max_exp</item>
|
||||
<item>min_10_exp</item>
|
||||
<item>min_exp</item>
|
||||
<item>re</item>
|
||||
<item>im</item>
|
||||
<item>length</item>
|
||||
<item>ptr</item>
|
||||
<item>dup</item>
|
||||
<item>idup</item>
|
||||
<item>reverse</item>
|
||||
<item>sort</item>
|
||||
<item>keys</item>
|
||||
<item>values</item>
|
||||
<item>rehash</item>
|
||||
</list>
|
||||
|
||||
<list name="libsymbols">
|
||||
<!-- these are only symbols defined in object.d(i) -->
|
||||
<item>size_t</item>
|
||||
<item>ptrdiff_t</item>
|
||||
<item>hash_t</item>
|
||||
<item>Error</item>
|
||||
<item>Exception</item>
|
||||
<item>Object</item>
|
||||
<item>TypeInfo</item>
|
||||
<item>ClassInfo</item>
|
||||
<item>ModuleInfo</item>
|
||||
<item>Interface</item>
|
||||
<item>OffsetTypeInfo</item>
|
||||
<item>TypeInfo_Typedef</item>
|
||||
<item>TypeInfo_Enum</item>
|
||||
<item>TypeInfo_Pointer</item>
|
||||
<item>TypeInfo_Array</item>
|
||||
<item>TypeInfo_StaticArray</item>
|
||||
<item>TypeInfo_AssociativeArray</item>
|
||||
<item>TypeInfo_Function</item>
|
||||
<item>TypeInfo_Delegate</item>
|
||||
<item>TypeInfo_Class</item>
|
||||
<item>TypeInfo_Interface</item>
|
||||
<item>TypeInfo_Struct</item>
|
||||
<item>TypeInfo_Tuple</item>
|
||||
|
||||
<!-- phobos only as of tango 0.99.3 -->
|
||||
<item>string</item>
|
||||
<item>wstring</item>
|
||||
<item>dstring</item>
|
||||
<item>bit</item>
|
||||
<item>TypeInfo_Const</item>
|
||||
<item>TypeInfo_Invariant</item>
|
||||
</list>
|
||||
|
||||
<list name="linkage">
|
||||
<item>extern</item>
|
||||
</list>
|
||||
<list name="ltypes">
|
||||
<item>C</item>
|
||||
<!-- <item>C++</item> --><!-- is handled specially in Linkage rule -->
|
||||
<item>D</item>
|
||||
<item>Windows</item>
|
||||
<item>Pascal</item>
|
||||
<item>System</item>
|
||||
<!-- <item>Objective-C</item> --><!-- is handled specially in Linkage rule -->
|
||||
</list>
|
||||
|
||||
<list name="ptypes">
|
||||
<item>inline</item>
|
||||
<item>lib</item>
|
||||
<item>linkerDirective</item>
|
||||
<item>mangle</item>
|
||||
<item>msg</item>
|
||||
<item>startaddress</item>
|
||||
</list>
|
||||
|
||||
<list name="scope_keywords">
|
||||
<item>exit</item>
|
||||
<item>success</item>
|
||||
<item>failure</item>
|
||||
</list>
|
||||
|
||||
<list name="vtypes">
|
||||
<item>DigitalMars</item>
|
||||
<item>X86</item>
|
||||
<item>X86_64</item>
|
||||
<item>Windows</item>
|
||||
<item>Win32</item>
|
||||
<item>Win64</item>
|
||||
<item>linux</item>
|
||||
<item>LittleEndian</item>
|
||||
<item>BigEndian</item>
|
||||
<item>D_Coverage</item>
|
||||
<item>D_InlineAsm_X86</item>
|
||||
<item>unittest</item>
|
||||
<item>D_Version2</item>
|
||||
<item>none</item>
|
||||
<item>all</item>
|
||||
</list>
|
||||
|
||||
<list name="specialtokens">
|
||||
<item>__FILE__</item>
|
||||
<item>__LINE__</item>
|
||||
<item>__DATE__</item>
|
||||
<item>__TIME__</item>
|
||||
<item>__TIMESTAMP__</item>
|
||||
<item>__VENDOR__</item>
|
||||
<item>__VERSION__</item>
|
||||
<item>__EOF__</item>
|
||||
</list>
|
||||
|
||||
<list name="tests">
|
||||
<item>debug</item>
|
||||
<item>unittest</item>
|
||||
</list>
|
||||
|
||||
<list name="pragma">
|
||||
<item>pragma</item>
|
||||
</list>
|
||||
|
||||
<list name="version">
|
||||
<item>version</item>
|
||||
</list>
|
||||
|
||||
<list name="deprecated">
|
||||
<item>deprecated</item>
|
||||
<item>volatile</item> <!-- has been deprecated -->
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<!-- Performance improvement (probably): anything starting with a letter is matched separately -->
|
||||
<RegExpr String="[a-zA-Z_]" attribute="Normal Text" context="StartingLetter" lookAhead="true"/>
|
||||
|
||||
<HlCStringChar attribute="EscapeSequence" context="#stay"/>
|
||||
<Detect2Chars attribute="EscapeSequence" context="UnicodeShort" char="\" char1="u"/>
|
||||
<Detect2Chars attribute="EscapeSequence" context="UnicodeLong" char="\" char1="U"/>
|
||||
<Detect2Chars attribute="EscapeSequence" context="HTMLEntity" char="\" char1="&"/>
|
||||
|
||||
<DetectChar attribute="Char" context="CharLiteral" char="'"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<DetectChar attribute="BQString" context="BQString" char="`"/>
|
||||
|
||||
<StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
|
||||
<StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
|
||||
<IncludeRules context="CommentRules" />
|
||||
|
||||
<!-- Match ... and .. before numbers are matched. -->
|
||||
<!-- Now in symbols keywords section -->
|
||||
<StringDetect attribute="Normal Text" context="#stay" String="..."/>
|
||||
<Detect2Chars attribute="Normal Text" char="." char1="."/>
|
||||
|
||||
<!-- Float starting with a dot -->
|
||||
<RegExpr attribute="Float" context="#stay" String="\.\d[\d_]*(?:[eE][-+]?\d[\d_]*)?[fFL]?i?"/>
|
||||
|
||||
<!-- Try to match various built-in properties -->
|
||||
<DetectChar char="." attribute="Normal Text" context="Properties"/>
|
||||
|
||||
<!-- Look ahead for a digit and switch to NumberLiteral context if found. -->
|
||||
<RegExpr context="NumberLiteral" String="\d" attribute="Normal Text" lookAhead="true"/>
|
||||
|
||||
<!-- #line Integer [Filespec] -->
|
||||
<StringDetect attribute="Pragma" context="LinePragma" String="#line"/>
|
||||
|
||||
<!-- Rules for the C-style indenter. Currently problems with /// and /++ comments. -->
|
||||
<DetectChar attribute="Symbol" context="BraceA" char="{" beginRegion="BraceA" />
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>?[]|~^;"/>
|
||||
</context>
|
||||
|
||||
<context name="BraceA" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Symbol" context="#pop" char="}" endRegion="BraceA" />
|
||||
<IncludeRules context="normal"/>
|
||||
</context>
|
||||
|
||||
<context name="StartingLetter" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<!-- fall-through should work now that DetectIdentifier is used (without infinite loops) -->
|
||||
<!-- maybe not... got an infinite loop -->
|
||||
<RegExpr String="[^a-zA-Z_]" attribute="Normal Text" context="#pop" lookAhead="true"/>
|
||||
|
||||
<!-- detect whether scope, in, out, etc. are used as attributes or statements (etc.) -->
|
||||
<!-- rules cannot match across newlines unfortunately -->
|
||||
<RegExpr String="in\s*(?=\{)|out\s*(?=(\(([a-zA-Z_][\w_]*)?\)\s*)?\{)" attribute="Statement" context="#stay" />
|
||||
<RegExpr String="scope\s*(?=\()" attribute="Statement" context="Scope" />
|
||||
<RegExpr String="import\s*(?=\()" attribute="Expression" context="#stay" />
|
||||
<RegExpr String="(function|delegate)\s*(?=\()" attribute="Declarator" context="#stay" />
|
||||
|
||||
<keyword String="statements" attribute="Statement" context="#stay" />
|
||||
<keyword String="attributes" attribute="Attribute" context="#stay" />
|
||||
<keyword String="expressions" attribute="Expression" context="#stay" />
|
||||
<keyword String="declarators" attribute="Declarator" context="#stay" />
|
||||
<keyword String="templates" attribute="Template" context="#stay" />
|
||||
<keyword String="modules" attribute="Module" context="ModuleName"/>
|
||||
<keyword String="types" attribute="Type" context="#stay" />
|
||||
<keyword String="libsymbols" attribute="LibrarySymbols" context="#stay" />
|
||||
<keyword String="linkage" attribute="Linkage" context="Linkage" />
|
||||
<keyword String="specialtokens" attribute="SpecialTokens" context="#stay" />
|
||||
<keyword String="tests" attribute="Tests" context="#stay" />
|
||||
<!-- These must use keyword not DetectString: DetectString does not check for word-break after string. -->
|
||||
<keyword String="pragma" attribute="Pragma" context="Pragma" />
|
||||
<keyword String="version" attribute="Version" context="Version" />
|
||||
<keyword String="deprecated" attribute="Deprecated" context="#stay" />
|
||||
|
||||
<Detect2Chars attribute="RawString" context="RawString" char="r" char1="""/>
|
||||
<Detect2Chars attribute="HexString" context="HexString" char="x" char1="""/>
|
||||
<Detect2Chars attribute="Token String Delimiter" context="TokenString" char="q" char1="{"/>
|
||||
<RegExpr attribute="Delimited String Delimiter" context="DelimStrHeredoc" String="q"([A-Za-z_][A-Za-z0-9_]*)$" />
|
||||
<StringDetect attribute="Delimited String Delimiter" context="DelimStrBracket" String="q"[" />
|
||||
<StringDetect attribute="Delimited String Delimiter" context="DelimStrParen" String="q"(" />
|
||||
<StringDetect attribute="Delimited String Delimiter" context="DelimStrLtGt" String="q"<" />
|
||||
<StringDetect attribute="Delimited String Delimiter" context="DelimStrBrace" String="q"{" />
|
||||
<RegExpr attribute="Delimited String Delimiter" context="DelimStrSimple" String="q"([^A-Za-z_[(<{])" />
|
||||
|
||||
<!-- user highlighting: last so as not to interfere with anything else -->
|
||||
<keyword String="userkeywords" attribute="UserKeywords" context="#stay" />
|
||||
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context name="Properties" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<keyword String="properties" attribute="Property" context="#pop" />
|
||||
</context>
|
||||
<context name="NumberLiteral" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<!-- Float literals -->
|
||||
<!-- Floats must be matched before Binary|Octal|Hex|DecInteger -->
|
||||
<RegExpr attribute="Float" context="#pop" String="&hexfloat;|&float;"/>
|
||||
|
||||
<!-- Binary|Octal|Hex|DecInteger -->
|
||||
<!-- Common, optional suffix: (L[uU]?|[uU]L?)? -->
|
||||
<RegExpr attribute="Binary" context="#pop" String="0[bB]_*[01][01_]*(?:L[uU]?|[uU]L?)?"/>
|
||||
<!-- Octal must be matched before DecInteger -->
|
||||
<RegExpr attribute="Octal" context="#pop" String="0[0-7_]+(?:L[uU]?|[uU]L?)?"/>
|
||||
<RegExpr attribute="Hex" context="#pop" String="0[xX]_*[\da-fA-F][\da-fA-F_]*(?:L[uU]?|[uU]L?)?"/>
|
||||
<!-- Decimal integers must be matched last -->
|
||||
<RegExpr attribute="Integer" context="#pop" String="\d+[\d_]*(?:L[uU]?|[uU]L?)?"/>
|
||||
</context>
|
||||
|
||||
<context name="LinePragma" attribute="Pragma" lineEndContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<!-- Match an Integer -->
|
||||
<RegExpr attribute="Integer" context="#stay" String="(?:(?:0(?:[0-7_]+|[bB]_*[01][01_]*|[xX]_*[\da-fA-F][\da-fA-F_]*))|\d+[\d_]*)(?:L[uU]?|[uU]L?)?"/>
|
||||
<RangeDetect attribute="String" context="#stay" char=""" char1="""/>
|
||||
<keyword attribute="SpecialTokens" context="#stay" String="specialtokens"/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<RegExpr attribute="Error" context="#pop" String=".+"/>
|
||||
</context>
|
||||
|
||||
<!-- \u 4HexDigits -->
|
||||
<context name="UnicodeShort" attribute="EscapeSequence" lineEndContext="#pop">
|
||||
<RegExpr attribute="EscapeSequence" context="#pop" String="[\da-fA-F]{4}"/>
|
||||
</context>
|
||||
<!-- \U 8HexDigits -->
|
||||
<context name="UnicodeLong" attribute="EscapeSequence" lineEndContext="#pop">
|
||||
<RegExpr attribute="EscapeSequence" context="#pop" String="[\da-fA-F]{8}"/>
|
||||
</context>
|
||||
<!-- \& Alpha Alphanumerical+ ; -->
|
||||
<context name="HTMLEntity" attribute="EscapeSequence" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<RegExpr attribute="EscapeSequence" context="#pop" String="[a-zA-Z]\w+;"/>
|
||||
</context>
|
||||
|
||||
<context name="ModuleName" attribute="Module Name" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<RegExpr context="#pop" String="[^\s\w.:,=]" lookAhead="true"/>
|
||||
</context>
|
||||
|
||||
<context name="Linkage" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectChar attribute="Normal Text" context="Linkage2" char="("/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
</context>
|
||||
<context name="Linkage2" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<StringDetect attribute="Linkage Type" context="Linkage-C++" String="C++"/>
|
||||
<StringDetect attribute="Linkage Type" context="#stay" String="Objective-C"/>
|
||||
<keyword attribute="Linkage Type" context="#stay" String="ltypes"/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<!-- Fall-through rules, highlighting errors: -->
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
|
||||
<RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
|
||||
</context>
|
||||
<context name="Linkage-C++" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<DetectChar char="," attribute="Normal Text" context="Linkage-C++2"/>
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop"/>
|
||||
<RegExpr String="." attribute="Error" context="#stay"/>
|
||||
</context>
|
||||
<context name="Linkage-C++2" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<DetectIdentifier attribute="Normal Text" context="#stay"/>
|
||||
<DetectChar char="." attribute="Normal Text" context="#stay"/>
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop"/>
|
||||
<RegExpr String="." attribute="Error" context="#stay"/>
|
||||
</context>
|
||||
|
||||
<context name="Version" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectChar attribute="Normal Text" context="VersionSpec" char="="/>
|
||||
<DetectChar attribute="Normal Text" context="VersionCond" char="("/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<!-- Fall-through rules, highlighting errors: -->
|
||||
<RegExpr String="[^\s\n]+" attribute="Error" context="#pop"/>
|
||||
</context>
|
||||
<context name="VersionSpec" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier attribute="Normal Text" context="#stay"/>
|
||||
<RegExpr attribute="Integer" context="#stay" String="\d+[\d_]*(?:L[uU]?|[uU]L?)?"/>
|
||||
<DetectChar char=";" attribute="Normal Text" context="#pop#pop"/>
|
||||
<RegExpr String="." attribute="Error" context="#pop#pop"/>
|
||||
</context>
|
||||
<context name="VersionCond" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<keyword attribute="Version Type" context="#stay" String="vtypes"/>
|
||||
<DetectIdentifier attribute="Normal Text" context="#stay"/>
|
||||
<RegExpr attribute="Integer" context="#stay" String="\d+[\d_]*(?:L[uU]?|[uU]L?)?"/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<!-- Fall-through rules, highlighting errors: -->
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
|
||||
<RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Scope" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectChar attribute="Normal Text" context="Scope2" char="("/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
</context>
|
||||
<context name="Scope2" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<keyword String="scope_keywords" attribute="Expression" context="#stay"/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<!-- Fall-through rules, highlighting errors: -->
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
|
||||
<RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Pragma" attribute="Pragma" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectChar attribute="Normal Text" context="Pragma2" char="("/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<!-- Fall-through rules, highlighting errors: -->
|
||||
<RegExpr String="[^\s\n]+" attribute="Error" context="#pop"/>
|
||||
</context>
|
||||
<context name="Pragma2" attribute="Pragma" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<keyword attribute="Version Type" context="Pragma3" String="ptypes"/>
|
||||
<DetectIdentifier attribute="Normal Text" context="Pragma3"/>
|
||||
<IncludeRules context="CommentRules" />
|
||||
<!-- Fall-through rules, highlighting errors: -->
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
|
||||
<RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
|
||||
</context>
|
||||
<context name="Pragma3" attribute="Pragma" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectChar char="," attribute="Normal Text" context="Pragma4"/>
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop"/>
|
||||
<RegExpr String="." attribute="Error" context="#pop#pop#pop"/>
|
||||
</context>
|
||||
<context name="Pragma4" attribute="Pragma" lineEndContext="#stay">
|
||||
<DetectChar char="(" attribute="Normal Text" context="Parenthetical"/>
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop#pop"/>
|
||||
<IncludeRules context="normal" />
|
||||
</context>
|
||||
<context name="Parenthetical" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar char="(" attribute="Normal Text" context="Parenthetical"/>
|
||||
<DetectChar char=")" attribute="Normal Text" context="#pop"/>
|
||||
<IncludeRules context="normal" />
|
||||
</context>
|
||||
|
||||
<!-- Strings -->
|
||||
<!-- r"..." -->
|
||||
<context name="RawString" attribute="RawString" lineEndContext="#stay">
|
||||
<DetectChar attribute="RawString" context="#pop" char="""/>
|
||||
</context>
|
||||
<!-- `...` -->
|
||||
<context name="BQString" attribute="BQString" lineEndContext="#stay">
|
||||
<DetectChar attribute="BQString" context="#pop" char="`"/>
|
||||
</context>
|
||||
<!-- x"..." -->
|
||||
<context name="HexString" attribute="HexString" lineEndContext="#stay">
|
||||
<DetectChar attribute="HexString" context="#pop" char="""/>
|
||||
<RegExpr attribute="Error" context="#stay" String="[^\sa-fA-F\d"]+" />
|
||||
</context>
|
||||
<!-- '...' -->
|
||||
<context name="CharLiteral" attribute="Char" lineEndContext="CharLiteralClosing" fallthrough="true" fallthroughContext="#pop">
|
||||
<!-- Empty '' -->
|
||||
<DetectChar attribute="Char" context="#pop" char="'"/>
|
||||
<!-- \t \n \r etc. -->
|
||||
<HlCStringChar attribute="EscapeSequence" context="CharLiteralClosing"/>
|
||||
<!-- \u 4HexDigits | \U 8HexDigits | HTMLEntity -->
|
||||
<RegExpr attribute="EscapeSequence" context="CharLiteralClosing" String="\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}|&[a-zA-Z]\w+;)"/>
|
||||
<!-- Invalid escape sequences -->
|
||||
<RegExpr attribute="Error" context="CharLiteralClosing" String="\\."/>
|
||||
<!-- Any character -->
|
||||
<RegExpr attribute="Char" context="CharLiteralClosing" String="."/>
|
||||
</context>
|
||||
<!-- Anything other than a closing ' is now be an error -->
|
||||
<context name="CharLiteralClosing" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
|
||||
<DetectChar attribute="Char" context="#pop#pop" char="'"/>
|
||||
</context>
|
||||
<!-- "..." -->
|
||||
<context name="String" attribute="String" lineEndContext="#stay">
|
||||
<HlCStringChar attribute="EscapeSequence"/>
|
||||
<Detect2Chars attribute="String" context="#pop" char=""" char1="c"/>
|
||||
<Detect2Chars attribute="String" context="#pop" char=""" char1="w"/>
|
||||
<Detect2Chars attribute="String" context="#pop" char=""" char1="d"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
<Detect2Chars attribute="EscapeSequence" context="UnicodeShort" char="\" char1="u"/>
|
||||
<Detect2Chars attribute="EscapeSequence" context="UnicodeLong" char="\" char1="U"/>
|
||||
<Detect2Chars attribute="EscapeSequence" context="HTMLEntity" char="\" char1="&"/>
|
||||
</context>
|
||||
<!-- token strings: q{...} -->
|
||||
<context name="TokenString" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Token String Delimiter" context="#pop" char="}" />
|
||||
<IncludeRules context="normal" />
|
||||
</context>
|
||||
<!-- delimited strings -->
|
||||
<!-- q"IDENTIFIER...IDENTIFIER" -->
|
||||
<context name="DelimStrHeredoc" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<StringDetect attribute="Delimited String Delimiter" context="#pop" String="%1"" dynamic="true" column="0" />
|
||||
<StringDetect attribute="Error" context="#pop" String="%1" dynamic="true" column="0" />
|
||||
</context>
|
||||
<!-- q"[...]" -->
|
||||
<context name="DelimStrBracket" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrBracket2" char="[" />
|
||||
<Detect2Chars attribute="Delimited String Delimiter" context="#pop" char="]" char1=""" />
|
||||
<DetectChar attribute="Error" context="#pop" char="]" />
|
||||
</context>
|
||||
<context name="DelimStrBracket2" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrBracket2" char="[" />
|
||||
<DetectChar attribute="Delimited String Content" context="#pop" char="]" />
|
||||
</context>
|
||||
<!-- q"(...)" -->
|
||||
<context name="DelimStrParen" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrParen2" char="(" />
|
||||
<Detect2Chars attribute="Delimited String Delimiter" context="#pop" char=")" char1=""" />
|
||||
<DetectChar attribute="Error" context="#pop" char=")" />
|
||||
</context>
|
||||
<context name="DelimStrParen2" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrParen2" char="(" />
|
||||
<DetectChar attribute="Delimited String Content" context="#pop" char=")" />
|
||||
</context>
|
||||
<!-- q"<...>" -->
|
||||
<context name="DelimStrLtGt" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrLtGt2" char="<" />
|
||||
<Detect2Chars attribute="Delimited String Delimiter" context="#pop" char=">" char1=""" />
|
||||
<DetectChar attribute="Error" context="#pop" char=">" />
|
||||
</context>
|
||||
<context name="DelimStrLtGt2" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrLtGt2" char="<" />
|
||||
<DetectChar attribute="Delimited String Content" context="#pop" char=">" />
|
||||
</context>
|
||||
<!-- q"{...}" -->
|
||||
<context name="DelimStrBrace" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrBrace2" char="{" />
|
||||
<Detect2Chars attribute="Delimited String Delimiter" context="#pop" char="}" char1=""" />
|
||||
<DetectChar attribute="Error" context="#pop" char="}" />
|
||||
</context>
|
||||
<context name="DelimStrBrace2" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<DetectChar attribute="Delimited String Content" context="DelimStrBrace2" char="{" />
|
||||
<DetectChar attribute="Delimited String Content" context="#pop" char="}" />
|
||||
</context>
|
||||
<!-- q"*...*" -->
|
||||
<context name="DelimStrSimple" attribute="Delimited String Content" lineEndContext="#stay">
|
||||
<StringDetect attribute="Delimited String Delimiter" context="#pop" String="%1"" dynamic="true" />
|
||||
<StringDetect attribute="Error" context="#pop" String="%1" dynamic="true" />
|
||||
</context>
|
||||
|
||||
<!-- Comments -->
|
||||
<context name="CommentRules" attribute="Normal Text" lineEndContext="#pop">
|
||||
<IncludeRules context="DdocNormal" />
|
||||
<Detect2Chars attribute="Comment" context="CommentLine" char="/" char1="/"/>
|
||||
<Detect2Chars attribute="Comment" context="CommentBlock" char="/" char1="*" beginRegion="CommentBlock"/>
|
||||
<Detect2Chars attribute="Comment" context="CommentNested" char="/" char1="+" beginRegion="CommentNested"/>
|
||||
<!-- This context is only for including rules from. -->
|
||||
</context>
|
||||
<context name="Region Marker" attribute="Region Marker" lineEndContext="#pop">
|
||||
</context>
|
||||
<context name="CommentLine" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context name="CommentBlock" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="CommentBlock"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
<context name="CommentNested" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="CommentNested" char="/" char1="+" beginRegion="CommentNested"/>
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="+" char1="/" endRegion="CommentNested"/>
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
|
||||
<!-- Ddoc contexts -->
|
||||
<context name="DdocNormal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="Comment" context="DdocLine" String="/{3,}"/>
|
||||
<RegExpr attribute="Comment" context="DdocBlock" String="/\*{2,}(?!/)" beginRegion="DdocBlock"/>
|
||||
<RegExpr attribute="Comment" context="DdocNested" String="/\+{2,}(?!/)" beginRegion="DdocNested"/>
|
||||
</context>
|
||||
|
||||
<context name="DdocLine" attribute="Ddoc" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<DetectIdentifier attribute="Ddoc"/>
|
||||
<Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
|
||||
<RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:(?:$|\s)" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="DdocBlock" attribute="Ddoc" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<DetectIdentifier attribute="Ddoc"/>
|
||||
<RegExpr attribute="Comment" context="#pop" String="\*+/" endRegion="DdocBlock"/>
|
||||
<DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
|
||||
|
||||
<Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
|
||||
<RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:(?:$|\s)" />
|
||||
<IncludeRules context="##Comments" />
|
||||
|
||||
<!-- Avoid matching this; do it this way since (^|\s)-* always matches .- and \s-* never
|
||||
matches .- (spaces have already been matched); however -*($|\s) matches just fine.
|
||||
Also can't use \b since - is not a word character. -->
|
||||
<RegExpr attribute="Ddoc" context="#stay" String="[^-]-{3,}" />
|
||||
<RegExpr attribute="Comment" context="DdocBlockCode" String="-{3,}(?:$|\s)" />
|
||||
</context>
|
||||
|
||||
<context name="DdocNested" attribute="Ddoc" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<DetectIdentifier attribute="Ddoc"/>
|
||||
<!-- Ddoc recognises nested comments/ddoc, but ignores them as far as formatting is concerned. -->
|
||||
<Detect2Chars attribute="Ddoc" context="DdocNested2" char="/" char1="+"/>
|
||||
<RegExpr attribute="Comment" context="#pop" String="\++/" endRegion="DdocNested"/>
|
||||
<DetectChar attribute="Comment" context="#stay" char="+" firstNonSpace="true" />
|
||||
|
||||
<Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
|
||||
<RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:(?:$|\s)" />
|
||||
<IncludeRules context="##Comments" />
|
||||
|
||||
<!-- As above. -->
|
||||
<RegExpr attribute="Ddoc" context="#stay" String="[^-]-{3,}" />
|
||||
<RegExpr attribute="Comment" context="DdocNestedCode" String="-{3,}(?:$|\s)" />
|
||||
</context>
|
||||
|
||||
<context name="DdocNested2" attribute="Ddoc" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<DetectIdentifier attribute="Ddoc"/>
|
||||
<!-- Identical to DdocNested except that nested comments don't receive any formatting -->
|
||||
<RegExpr attribute="Ddoc" context="#pop" String="\++/"/>
|
||||
<!-- The above rules should match before the unwanted rule in DdocNested -->
|
||||
<IncludeRules context="DdocNested" />
|
||||
</context>
|
||||
|
||||
<!-- When entering a macro: provides highlighting for first symbol (macro name) -->
|
||||
<context name="DdocMacro" attribute="Error" lineEndContext="#stay">
|
||||
<DetectSpaces attribute="Macro Text" /> <!-- avoid showing space as an error -->
|
||||
|
||||
<DetectChar attribute="Macros" context="#pop" char=")" /> <!-- early end of macro -->
|
||||
<IncludeRules context="MacroRules" />
|
||||
|
||||
<!-- first symbol of macro -->
|
||||
<DetectIdentifier attribute="Macros" context="DdocMacro2" />
|
||||
</context>
|
||||
<!-- For rest of macro -->
|
||||
<context name="DdocMacro2" attribute="Macro Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Macros" context="#pop#pop" char=")" /> <!-- end of macro -->
|
||||
<IncludeRules context="MacroRules" />
|
||||
</context>
|
||||
<!-- For embedded brackets (yeah, extra work to ignore them) -->
|
||||
<context name="DdocMacro3" attribute="Macro Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Macro Text" context="#pop" char=")" /> <!-- end of embedded brackets -->
|
||||
<IncludeRules context="MacroRules" />
|
||||
</context>
|
||||
<!-- Rules common to all macros -->
|
||||
<context name="MacroRules" attribute="Macro Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" /> <!-- embedded -->
|
||||
<DetectChar attribute="Macro Text" context="DdocMacro3" char="(" /> <!-- extra brackets -->
|
||||
|
||||
<DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
|
||||
</context>
|
||||
|
||||
<context name="DdocBlockCode" attribute="DdocCode" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<!-- See update 1.11 -->
|
||||
<RegExpr attribute="Comment" context="#pop#pop" String="\*+/" endRegion="DdocBlock"/>
|
||||
<DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
|
||||
<!-- As above. -->
|
||||
<RegExpr attribute="DdocCode" context="#stay" String="[^-]-{3,}" />
|
||||
<RegExpr attribute="Comment" context="#pop" String="-{3,}(?:$|\s)" />
|
||||
<IncludeRules context="##D" />
|
||||
</context>
|
||||
<context name="DdocNestedCode" attribute="DdocCode" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<!-- See update 1.11 -->
|
||||
<RegExpr attribute="Comment" context="#pop#pop" String="\++/" endRegion="DdocNested"/>
|
||||
<DetectChar attribute="Comment" context="#stay" char="+" firstNonSpace="true" />
|
||||
<!-- As above. -->
|
||||
<RegExpr attribute="DdocCode" context="#stay" String="[^-]-{3,}" />
|
||||
<RegExpr attribute="Comment" context="#pop" String="-{3,}(?:$|\s)" />
|
||||
<IncludeRules context="##D" />
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator"/>
|
||||
|
||||
<!-- keywords -->
|
||||
<itemData name="Statement" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Expression" defStyleNum="dsAttribute" bold="1"/> <!-- #000080 -->
|
||||
<itemData name="Declarator" defStyleNum="dsWarning" bold="1"/> <!-- #800000 -->
|
||||
<itemData name="Template" defStyleNum="dsOthers" bold="1"/> <!-- #008000 -->
|
||||
|
||||
<itemData name="Attribute" defStyleNum="dsFunction" bold="1"/> <!-- #800080 -->
|
||||
<itemData name="Deprecated" defStyleNum="dsFunction" bold="1" strikeOut="true"/> <!-- #800080 -->
|
||||
|
||||
<itemData name="Property" defStyleNum="dsDataType" bold="1"/> <!-- #000080 -->
|
||||
|
||||
<itemData name="Type" defStyleNum="dsDataType"/>
|
||||
<itemData name="LibrarySymbols" defStyleNum="dsBuiltIn" italic="1"/>
|
||||
|
||||
<itemData name="UserKeywords" defStyleNum="dsDataType" italic="1"/>
|
||||
|
||||
<!-- module, import -->
|
||||
<itemData name="Module" defStyleNum="dsPreprocessor" bold="1"/> <!-- #008000 -->
|
||||
<itemData name="Module Name" defStyleNum="dsImport"/> <!-- #008000 -->
|
||||
|
||||
<!-- pragma, special tokens -->
|
||||
<itemData name="SpecialTokens" defStyleNum="dsOthers" bold="1"/> <!-- #00aa00 -->
|
||||
<itemData name="Pragma" defStyleNum="dsOthers" bold="1"/> <!-- #00aa00 -->
|
||||
|
||||
<!-- version, extern -->
|
||||
<itemData name="Version" defStyleNum="dsDecVal"/> <!-- #808000 -->
|
||||
<itemData name="Version Type" defStyleNum="dsNormal" bold="1"/>
|
||||
<itemData name="Linkage" defStyleNum="dsInformation" bold="1"/> <!-- #808000 -->
|
||||
<itemData name="Linkage Type" defStyleNum="dsNormal" bold="1"/>
|
||||
|
||||
<itemData name="Tests" defStyleNum="dsFunction" bold="1"/> <!-- #ff00ff -->
|
||||
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker" />
|
||||
|
||||
<itemData name="Error" defStyleNum="dsError"/>
|
||||
|
||||
<!-- literals -->
|
||||
<itemData name="Integer" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Binary" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat"/>
|
||||
|
||||
<itemData name="EscapeSequence" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Char" defStyleNum="dsChar"/>
|
||||
<itemData name="RawString" defStyleNum="dsVerbatimString"/>
|
||||
<itemData name="BQString" defStyleNum="dsSpecialString"/>
|
||||
<itemData name="HexString" defStyleNum="dsSpecialString"/>
|
||||
<itemData name="Token String Delimiter" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Delimited String Content" defStyleNum="dsVerbatimString"/>
|
||||
<itemData name="Delimited String Delimiter" defStyleNum="dsKeyword"/>
|
||||
|
||||
<!-- Ddoc specific -->
|
||||
<itemData name="Macros" defStyleNum="dsSpecialChar" bold="1" italic="0" /> <!-- #bf5fbf -->
|
||||
<itemData name="Macro Text" defStyleNum="dsAttribute" bold="0" italic="0" /> <!-- #bf7fff -->
|
||||
<itemData name="Ddoc" defStyleNum="dsDocumentation" /> <!-- #7f7fff -->
|
||||
<itemData name="DdocSection" defStyleNum="dsAnnotation" bold="1" /> <!-- #7f7fff -->
|
||||
<itemData name="DdocCode" defStyleNum="dsNormal" italic="1" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" position="afterwhitespace"/>
|
||||
<comment name="multiLine" start="/+" end="+/" region="CommentNested"/>
|
||||
</comments>
|
||||
<keywords casesensitive="true"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,221 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="Dart" section="Sources" version="4" kateversion="5.0" indenter="cstyle" extensions="*.dart" mimetype="text/x-dart" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>Function</item>
|
||||
<item>abstract</item>
|
||||
<item>as</item>
|
||||
<item>assert</item>
|
||||
<item>class</item>
|
||||
<item>covariant</item>
|
||||
<item>deferred</item>
|
||||
<item>enum</item>
|
||||
<item>export</item>
|
||||
<item>extends</item>
|
||||
<item>extension</item>
|
||||
<item>external</item>
|
||||
<item>factory</item>
|
||||
<item>get</item>
|
||||
<item>hide</item>
|
||||
<item>implements</item>
|
||||
<item>import</item>
|
||||
<item>in</item>
|
||||
<item>interface</item>
|
||||
<item>is</item>
|
||||
<item>library</item>
|
||||
<item>mixin</item>
|
||||
<item>new</item>
|
||||
<item>on</item>
|
||||
<item>operator</item>
|
||||
<item>part</item>
|
||||
<item>return</item>
|
||||
<item>set</item>
|
||||
<item>show</item>
|
||||
<item>super</item>
|
||||
<item>sync</item>
|
||||
<item>this</item>
|
||||
<item>typedef</item>
|
||||
<item>with</item>
|
||||
<item>yield</item>
|
||||
<item>@pragma</item>
|
||||
<item>@override</item>
|
||||
<item>@deprecated</item>
|
||||
</list>
|
||||
<list name="controlflow">
|
||||
<item>break</item>
|
||||
<item>case</item>
|
||||
<item>catch</item>
|
||||
<item>continue</item>
|
||||
<item>default</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>finally</item>
|
||||
<item>for</item>
|
||||
<item>if</item>
|
||||
<item>rethrow</item>
|
||||
<item>switch</item>
|
||||
<item>throw</item>
|
||||
<item>try</item>
|
||||
<item>when</item>
|
||||
<item>while</item>
|
||||
</list>
|
||||
<list name="modifiers">
|
||||
<item>async</item>
|
||||
<item>await</item>
|
||||
<item>const</item>
|
||||
<item>dynamic</item>
|
||||
<item>final</item>
|
||||
<item>late</item>
|
||||
<item>sealed</item>
|
||||
<item>static</item>
|
||||
</list>
|
||||
<list name="types">
|
||||
<item>Future</item>
|
||||
<item>Iterable</item>
|
||||
<item>List</item>
|
||||
<item>Map</item>
|
||||
<item>Never</item>
|
||||
<item>Object</item>
|
||||
<item>Set</item>
|
||||
<item>Stream</item>
|
||||
<item>String</item>
|
||||
<item>bool</item>
|
||||
<item>double</item>
|
||||
<item>int</item>
|
||||
<item>var</item>
|
||||
<item>void</item>
|
||||
</list>
|
||||
<list name="literals">
|
||||
<item>true</item>
|
||||
<item>false</item>
|
||||
<item>null</item>
|
||||
</list>
|
||||
<list name="exceptions">
|
||||
<item>AbstractClassInstantiationError</item>
|
||||
<item>ArgumentError</item>
|
||||
<item>AssertionError</item>
|
||||
<item>CastError</item>
|
||||
<item>ConcurrentModificationError</item>
|
||||
<item>CyclicInitializationError</item>
|
||||
<item>Error</item>
|
||||
<item>Exception</item>
|
||||
<item>FallThroughError</item>
|
||||
<item>FormatException</item>
|
||||
<item>IndexError</item>
|
||||
<item>IntegerDivisionByZeroException</item>
|
||||
<item>JsonCyclicError</item>
|
||||
<item>JsonUnsupportedObjectError</item>
|
||||
<item>NoSuchMethodError</item>
|
||||
<item>NullThrownError</item>
|
||||
<item>OutOfMemoryError</item>
|
||||
<item>RangeError</item>
|
||||
<item>StackOverflowError</item>
|
||||
<item>StateError</item>
|
||||
<item>TypeError</item>
|
||||
<item>UnimplementedError</item>
|
||||
<item>UnsupportedError</item>
|
||||
</list>
|
||||
<list name="thiskeyword">
|
||||
<item>this</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<DetectSpaces/>
|
||||
<keyword attribute="Control Flow" context="#stay" String="controlflow"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data Type" context="#stay" String="types"/>
|
||||
<keyword attribute="Modifiers" context="#stay" String="modifiers"/>
|
||||
<keyword attribute="Constant" context="#stay" String="literals"/>
|
||||
<keyword attribute="Exceptions" context="#stay" String="exceptions"/>
|
||||
<WordDetect attribute="This Keyword" context="#stay" String="this"/>
|
||||
<DetectIdentifier/>
|
||||
<Float attribute="Float" context="#stay"/>
|
||||
<Int attribute="Decimal" context="#stay"/>
|
||||
<HlCHex attribute="Hex" context="#stay"/>
|
||||
<HlCOct attribute="Octal" context="#stay"/>
|
||||
<StringDetect attribute="String" String="'''" context="SMultilineString" beginRegion="MultilineStringRegion"/>
|
||||
<StringDetect attribute="String" String=""""" context="SMultilineString" beginRegion="MultilineStringRegion"/>
|
||||
<DetectChar attribute="String" context="DoubleQuoteString" char="""/>
|
||||
<DetectChar attribute="String" context="SingleQuoteString" char="'"/>
|
||||
<IncludeRules context="FindComments"/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
|
||||
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String=":!%&+,-/.*<=>?|~^"/>
|
||||
</context>
|
||||
<!-- Strings -->
|
||||
<context attribute="String" lineEndContext="#pop" name="DoubleQuoteString">
|
||||
<DetectSpaces attribute="String"/>
|
||||
<DetectIdentifier attribute="String"/>
|
||||
<LineContinue attribute="String" context="#stay"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="String" lineEndContext="#pop" name="SingleQuoteString">
|
||||
<DetectSpaces attribute="String"/>
|
||||
<DetectIdentifier attribute="String"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<DetectChar attribute="String" context="#pop" char="'"/>
|
||||
</context>
|
||||
<!-- Comments -->
|
||||
<context name="FindComments" attribute="Normal Text" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
|
||||
<Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true"/>
|
||||
</context>
|
||||
<context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true"/>
|
||||
<StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//END" endRegion="Region1" firstNonSpace="true"/>
|
||||
<IncludeRules context="##Doxygen"/>
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/"/>
|
||||
<Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment"/>
|
||||
</context>
|
||||
<context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<LineContinue attribute="Comment" context="#stay"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
|
||||
<DetectSpaces attribute="Comment"/>
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier attribute="Comment"/>
|
||||
</context>
|
||||
<!-- multiline string -->
|
||||
<context attribute="String" lineEndContext="#stay" name="SMultilineString">
|
||||
<DetectSpaces attribute="String"/>
|
||||
<HlCStringChar attribute="String Char" context="#stay"/>
|
||||
<StringDetect attribute="String" String="'''" context="#pop" endRegion="MultilineStringRegion"/>
|
||||
<StringDetect attribute="String" String=""""" context="#pop" endRegion="MultilineStringRegion"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="Exceptions" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Constant" defStyleNum="dsConstant" spellChecking="false"/>
|
||||
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
|
||||
<itemData name="Modifiers" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/>
|
||||
<itemData name="This Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" position="afterwhitespace"/>
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
|
||||
</comments>
|
||||
<keywords casesensitive="true"/>
|
||||
</general>
|
||||
</language>
|
||||
@@ -0,0 +1,293 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="Debian Changelog" version="21" kateversion="2.4" section="Other" extensions="changelog" mimetype="">
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>urgency</item>
|
||||
</list>
|
||||
|
||||
<list name="distributions">
|
||||
<item>oldstable</item>
|
||||
<item>oldstable-security</item>
|
||||
<item>oldstable-proposed-updates</item>
|
||||
<item>stable</item>
|
||||
<item>stable-security</item>
|
||||
<item>stable-proposed-updates</item>
|
||||
<item>testing</item>
|
||||
<item>testing-security</item>
|
||||
<item>testing-proposed-updates</item>
|
||||
<item>frozen</item>
|
||||
<item>unstable</item>
|
||||
<item>sid</item>
|
||||
<item>experimental</item>
|
||||
<item>UNRELEASED</item>
|
||||
<!-- Debian releases -->
|
||||
<item>sarge</item>
|
||||
<item>sarge-backports</item>
|
||||
<item>sarge-volatile</item>
|
||||
<item>etch</item>
|
||||
<item>etch-backports</item>
|
||||
<item>etch-volatile</item>
|
||||
<item>lenny</item>
|
||||
<item>lenny-backports</item>
|
||||
<item>lenny-backports-sloppy</item>
|
||||
<item>lenny-volatile</item>
|
||||
<item>squeeze</item>
|
||||
<item>squeeze-backports</item>
|
||||
<item>squeeze-backports-sloppy</item>
|
||||
<item>squeeze-volatile</item>
|
||||
<item>wheezy</item>
|
||||
<item>wheezy-backports</item>
|
||||
<item>wheezy-backports-sloppy</item>
|
||||
<item>jessie</item>
|
||||
<item>jessie-backports</item>
|
||||
<item>jessie-backports-sloppy</item>
|
||||
<item>stretch</item>
|
||||
<item>stretch-backports</item>
|
||||
<item>stretch-backports-sloppy</item>
|
||||
<item>buster</item>
|
||||
<item>buster-backports</item>
|
||||
<item>buster-backports-sloppy</item>
|
||||
<item>bullseye</item>
|
||||
<item>bullseye-backports</item>
|
||||
<item>bullseye-backports-sloppy</item>
|
||||
<item>bookworm</item>
|
||||
<item>bookworm-backports</item>
|
||||
<item>bookworm-backports-sloppy</item>
|
||||
<item>trixie</item>
|
||||
<item>trixie-backports</item>
|
||||
<item>trixie-backports-sloppy</item>
|
||||
<item>forky</item>
|
||||
<item>forky-backports</item>
|
||||
<item>forky-backports-sloppy</item>
|
||||
<!-- Ubuntu releases -->
|
||||
<item>dapper</item>
|
||||
<item>dapper-security</item>
|
||||
<item>dapper-proposed</item>
|
||||
<item>dapper-updates</item>
|
||||
<item>dapper-backports</item>
|
||||
<item>dapper-commercial</item>
|
||||
<item>edgy</item>
|
||||
<item>edgy-security</item>
|
||||
<item>edgy-proposed</item>
|
||||
<item>edgy-updates</item>
|
||||
<item>edgy-backports</item>
|
||||
<item>edgy-commercial</item>
|
||||
<item>feisty</item>
|
||||
<item>feisty-security</item>
|
||||
<item>feisty-proposed</item>
|
||||
<item>feisty-updates</item>
|
||||
<item>feisty-backports</item>
|
||||
<item>feisty-commercial</item>
|
||||
<item>gutsy</item>
|
||||
<item>gutsy-security</item>
|
||||
<item>gutsy-proposed</item>
|
||||
<item>gutsy-updates</item>
|
||||
<item>gutsy-backports</item>
|
||||
<item>gutsy-partner</item>
|
||||
<item>hardy</item>
|
||||
<item>hardy-security</item>
|
||||
<item>hardy-proposed</item>
|
||||
<item>hardy-updates</item>
|
||||
<item>hardy-backports</item>
|
||||
<item>hardy-partner</item>
|
||||
<item>intrepid</item>
|
||||
<item>intrepid-security</item>
|
||||
<item>intrepid-proposed</item>
|
||||
<item>intrepid-updates</item>
|
||||
<item>intrepid-backports</item>
|
||||
<item>intrepid-partner</item>
|
||||
<item>jaunty</item>
|
||||
<item>jaunty-security</item>
|
||||
<item>jaunty-proposed</item>
|
||||
<item>jaunty-updates</item>
|
||||
<item>jaunty-backports</item>
|
||||
<item>jaunty-partner</item>
|
||||
<item>karmic</item>
|
||||
<item>karmic-security</item>
|
||||
<item>karmic-proposed</item>
|
||||
<item>karmic-updates</item>
|
||||
<item>karmic-backports</item>
|
||||
<item>lucid</item>
|
||||
<item>lucid-security</item>
|
||||
<item>lucid-proposed</item>
|
||||
<item>lucid-updates</item>
|
||||
<item>lucid-backports</item>
|
||||
<item>maverick</item>
|
||||
<item>maverick-security</item>
|
||||
<item>maverick-proposed</item>
|
||||
<item>maverick-updates</item>
|
||||
<item>maverick-backports</item>
|
||||
<item>natty</item>
|
||||
<item>natty-security</item>
|
||||
<item>natty-proposed</item>
|
||||
<item>natty-updates</item>
|
||||
<item>natty-backports</item>
|
||||
<item>oneiric</item>
|
||||
<item>oneiric-security</item>
|
||||
<item>oneiric-proposed</item>
|
||||
<item>oneiric-updates</item>
|
||||
<item>oneiric-backports</item>
|
||||
<item>precise</item>
|
||||
<item>precise-security</item>
|
||||
<item>precise-proposed</item>
|
||||
<item>precise-updates</item>
|
||||
<item>precise-backports</item>
|
||||
<item>quantal</item>
|
||||
<item>quantal-security</item>
|
||||
<item>quantal-proposed</item>
|
||||
<item>quantal-updates</item>
|
||||
<item>quantal-backports</item>
|
||||
<item>raring</item>
|
||||
<item>raring-security</item>
|
||||
<item>raring-proposed</item>
|
||||
<item>raring-updates</item>
|
||||
<item>raring-backports</item>
|
||||
<item>saucy</item>
|
||||
<item>saucy-security</item>
|
||||
<item>saucy-proposed</item>
|
||||
<item>saucy-updates</item>
|
||||
<item>saucy-backports</item>
|
||||
<item>trusty</item>
|
||||
<item>trusty-security</item>
|
||||
<item>trusty-proposed</item>
|
||||
<item>trusty-updates</item>
|
||||
<item>trusty-backports</item>
|
||||
<item>utopic</item>
|
||||
<item>utopic-security</item>
|
||||
<item>utopic-proposed</item>
|
||||
<item>utopic-updates</item>
|
||||
<item>utopic-backports</item>
|
||||
<item>vivid</item>
|
||||
<item>vivid-security</item>
|
||||
<item>vivid-proposed</item>
|
||||
<item>vivid-updates</item>
|
||||
<item>vivid-backports</item>
|
||||
<item>wily</item>
|
||||
<item>wily-security</item>
|
||||
<item>wily-proposed</item>
|
||||
<item>wily-updates</item>
|
||||
<item>wily-backports</item>
|
||||
<item>xenial</item>
|
||||
<item>xenial-security</item>
|
||||
<item>xenial-proposed</item>
|
||||
<item>xenial-updates</item>
|
||||
<item>xenial-backports</item>
|
||||
<item>yakkety</item>
|
||||
<item>yakkety-security</item>
|
||||
<item>yakkety-proposed</item>
|
||||
<item>yakkety-updates</item>
|
||||
<item>yakkety-backports</item>
|
||||
<item>zesty</item>
|
||||
<item>zesty-security</item>
|
||||
<item>zesty-proposed</item>
|
||||
<item>zesty-updates</item>
|
||||
<item>zesty-backports</item>
|
||||
<item>artful</item>
|
||||
<item>artful-security</item>
|
||||
<item>artful-proposed</item>
|
||||
<item>artful-updates</item>
|
||||
<item>artful-backports</item>
|
||||
<item>bionic</item>
|
||||
<item>bionic-security</item>
|
||||
<item>bionic-proposed</item>
|
||||
<item>bionic-updates</item>
|
||||
<item>bionic-backports</item>
|
||||
<item>cosmic</item>
|
||||
<item>cosmic-security</item>
|
||||
<item>cosmic-proposed</item>
|
||||
<item>cosmic-updates</item>
|
||||
<item>cosmic-backports</item>
|
||||
<item>disco</item>
|
||||
<item>disco-security</item>
|
||||
<item>disco-proposed</item>
|
||||
<item>disco-updates</item>
|
||||
<item>disco-backports</item>
|
||||
<item>eoan</item>
|
||||
<item>eoan-security</item>
|
||||
<item>eoan-proposed</item>
|
||||
<item>eoan-updates</item>
|
||||
<item>eoan-backports</item>
|
||||
<item>focal</item>
|
||||
<item>focal-security</item>
|
||||
<item>focal-proposed</item>
|
||||
<item>focal-updates</item>
|
||||
<item>focal-backports</item>
|
||||
<item>groovy</item>
|
||||
<item>groovy-security</item>
|
||||
<item>groovy-proposed</item>
|
||||
<item>groovy-updates</item>
|
||||
<item>groovy-backports</item>
|
||||
<item>hirsute</item>
|
||||
<item>hirsute-security</item>
|
||||
<item>hirsute-proposed</item>
|
||||
<item>hirsute-updates</item>
|
||||
<item>hirsute-backports</item>
|
||||
<item>impish</item>
|
||||
<item>impish-security</item>
|
||||
<item>impish-proposed</item>
|
||||
<item>impish-updates</item>
|
||||
<item>impish-backports</item>
|
||||
<item>jammy</item>
|
||||
<item>jammy-security</item>
|
||||
<item>jammy-proposed</item>
|
||||
<item>jammy-updates</item>
|
||||
<item>jammy-backports</item>
|
||||
<item>kinetic</item>
|
||||
<item>kinetic-security</item>
|
||||
<item>kinetic-proposed</item>
|
||||
<item>kinetic-updates</item>
|
||||
<item>kinetic-backports</item>
|
||||
<item>lunar</item>
|
||||
<item>lunar-security</item>
|
||||
<item>lunar-proposed</item>
|
||||
<item>lunar-updates</item>
|
||||
<item>lunar-backports</item>
|
||||
</list>
|
||||
|
||||
<list name="urgencies">
|
||||
<item>low</item>
|
||||
<item>medium</item>
|
||||
<item>high</item>
|
||||
<item>emergency</item>
|
||||
<item>bug</item>
|
||||
<item>critical</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="INIT">
|
||||
<RegExpr attribute="Keyword" context="Head" String="^[^ ]*" column="0"/>
|
||||
<RegExpr attribute="Email" context="#stay" String="<.*@.*>"/>
|
||||
<StringDetect attribute="Keyword" context="#stay" String=" --" column="0"/>
|
||||
<StringDetect attribute="Keyword" context="#stay" String=" *" column="0"/>
|
||||
<RegExpr attribute="Bug" context="#stay" String="closes:[\s]*((bug\s*)?#\s*\d+)(\s*, *(bug\s*)?#\s*\d+)*" insensitive="true"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Head">
|
||||
<DetectChar attribute="Keyword" context="Version" char="("/>
|
||||
<AnyChar attribute="Keyword" context="#stay" String=",;="/>
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Data" context="#stay" String="distributions"/>
|
||||
<keyword attribute="Data" context="#stay" String="urgencies"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Version" lineEndContext="#pop" name="Version">
|
||||
<DetectChar attribute="Keyword" context="#pop" char=")"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Version" defStyleNum="dsDataType"/>
|
||||
<itemData name="Data" defStyleNum="dsDataType"/>
|
||||
<itemData name="Bug" defStyleNum="dsDataType"/>
|
||||
<itemData name="Email" defStyleNum="dsOthers"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<keywords casesensitive="1" weakDeliminator="-"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="Debian Control" version="4" kateversion="5.0" section="Other" extensions="control" mimetype="">
|
||||
<highlighting>
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="INIT">
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Depends:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Recommends:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Suggests:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Conflicts:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Provides:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Replaces:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Enhances:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Pre-Depends:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Build-Depends:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Build-Depends-Indep:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Build-Conflicts:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Build-Conflicts-Indep:"/>
|
||||
<StringDetect attribute="Keyword" context="DependencyField" String="Breaks:"/>
|
||||
<RegExpr attribute="Keyword" context="Field" minimal="true" String="^[^ ]*:" column="0"/>
|
||||
<DetectChar attribute="Value" context="Field" char=" " column="0"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Value" lineEndContext="#pop" name="Field">
|
||||
<RegExpr attribute="Email" context="#stay" String="<.*@.*>" minimal="true"/>
|
||||
<Detect2Chars attribute="Keyword" context="Variable" char="$" char1="{"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Variable" lineEndContext="#pop" name="Variable">
|
||||
<DetectChar attribute="Keyword" context="#pop" char="}"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Value" lineEndContext="#pop" name="DependencyField">
|
||||
<RegExpr attribute="Email" context="#stay" String="<.*@.*>" minimal="true"/>
|
||||
<Detect2Chars attribute="Keyword" context="Variable" char="$" char1="{"/>
|
||||
<AnyChar attribute="Keyword" context="#stay" String=",|"/>
|
||||
<AnyChar attribute="Keyword" context="Constrain" String="(["/>
|
||||
</context>
|
||||
|
||||
<context attribute="Version" lineEndContext="#stay" name="Constrain">
|
||||
<Detect2Chars attribute="Keyword" context="Variable" char="$" char1="{"/>
|
||||
<AnyChar attribute="Keyword" context="#stay" String="!<=>"/>
|
||||
<AnyChar attribute="Keyword" context="#pop" String=")]"/>
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Version" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Value" defStyleNum="dsDataType"/>
|
||||
<itemData name="Variable" defStyleNum="dsVariable"/>
|
||||
<itemData name="Email" defStyleNum="dsOthers"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name=".desktop" version="6" kateversion="5.0"
|
||||
section="Configuration" extensions="*.desktop;*.kdelnk;*.desktop.cmake"
|
||||
mimetype="application/x-desktop">
|
||||
<highlighting>
|
||||
<contexts>
|
||||
<context attribute="Key" lineEndContext="#stay" name="Normal">
|
||||
<RegExpr String="^\[.*\]$" attribute="Section" context="#stay" beginRegion="Section" endRegion="Section" column="0"/>
|
||||
<RegExpr String="\[.*\]" attribute="Language" context="Value"/>
|
||||
<DetectChar char="#" attribute="Comment" context="Comment" firstNonSpace="true"/>
|
||||
<DetectChar char="=" attribute="Normal Text" context="Value"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Value"/>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Section" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Key" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Language" defStyleNum="dsDecVal" bold="1" spellChecking="false"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#"/>
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY file "(====|\*\*\*|\-\-\-|diff|Only in [^:]*:).*$">
|
||||
]>
|
||||
<!--
|
||||
2006-08-02: 1.10 Matthew Woehlke <mw_triad@sourceforge.net>
|
||||
Added folding. Context diff changes are now identified as old/new (using
|
||||
seperate attributes). Recognize 'Only in' from 'diff -r' output.
|
||||
There is currently a bug (KATE limitation?) where regions may sometimes
|
||||
pick up one line too many.
|
||||
2008-02-13: 1.11 Eduardo Robles Elvira <edulix AT gmail DOT com>
|
||||
Fixed folding.
|
||||
-->
|
||||
<language name="Diff" version="9" kateversion="5.62" section="Other" extensions="*.diff;*patch;*.rej" mimetype="text/x-patch">
|
||||
|
||||
<highlighting>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal" fallthroughContext="AttrNormal">
|
||||
<Detect2Chars attribute="Header" context="AttrHeader_Chunk" char="@" char1="@" beginRegion="chunk" column="0"/>
|
||||
<AnyChar attribute="Header" context="AttrHeader_Chunk" String="0123456789" beginRegion="chunk" column="0"/>
|
||||
<RegExpr attribute="Header" context="RChunk" String="^\*+$" beginRegion="chunk" column="0"/>
|
||||
<RegExpr attribute="File" context="#stay" String="^Only in [^:]*:.*$" column="0"/>
|
||||
<StringDetect attribute="File" context="AttrFile_RFile" String="diff" beginRegion="chunk" column="0"/>
|
||||
<StringDetect attribute="File" context="AttrFile" String="====" column="0"/>
|
||||
<StringDetect attribute="File" context="AttrFile_File" String="***" beginRegion="chunk" column="0"/>
|
||||
<StringDetect attribute="File" context="AttrFile_File" String="---" beginRegion="chunk" column="0"/>
|
||||
<IncludeRules context="FindDiff"/>
|
||||
<DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindDiff">
|
||||
<StringDetect attribute="File" context="AttrFile" String="---" column="0"/>
|
||||
<StringDetect attribute="Header" context="AttrHeader" String="+++" column="0"/>
|
||||
<AnyChar attribute="Added line" context="Added" String="+>" column="0"/>
|
||||
<AnyChar attribute="Removed line" context="Removed" String="-<" column="0"/>
|
||||
</context>
|
||||
|
||||
<!-- block contexts -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="File" fallthroughContext="AttrNormal">
|
||||
<IncludeRules context="FindDiff"/>
|
||||
<Detect2Chars attribute="Header" context="AttrHeader_ChunkInFile" char="@" char1="@" beginRegion="chunk" column="0"/>
|
||||
<AnyChar attribute="Header" context="AttrHeader_ChunkInFile" String="0123456789" beginRegion="chunk" column="0"/>
|
||||
<RegExpr attribute="Header" context="RChunkInFile" String="^\*+$" beginRegion="chunk" column="0"/>
|
||||
<RegExpr attribute="File" context="#pop" String="^&file;" endRegion="chunk" column="0"/>
|
||||
<DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Chunk" fallthroughContext="AttrNormal">
|
||||
<IncludeRules context="FindDiff"/>
|
||||
<Detect2Chars attribute="Header" context="#pop" char="@" char1="@" endRegion="chunk" lookAhead="true" column="0"/>
|
||||
<AnyChar attribute="Header" context="#pop" String="0123456789" endRegion="chunk" lookAhead="true" column="0"/>
|
||||
<DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="ChunkInFile" fallthroughContext="AttrNormal">
|
||||
<IncludeRules context="FindDiff"/>
|
||||
<Detect2Chars attribute="Header" context="#pop" char="@" char1="@" endRegion="chunk" lookAhead="true" column="0"/>
|
||||
<AnyChar attribute="Header" context="#pop" String="0123456789" endRegion="chunk" lookAhead="true" column="0"/>
|
||||
<StringDetect attribute="Normal Text" context="#pop!AttrNormal" String="Index:" endRegion="chunk" column="0"/>
|
||||
<RegExpr attribute="File" context="#pop" String="^&file;" endRegion="chunk" lookAhead="true" column="0"/>
|
||||
<DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
|
||||
</context>
|
||||
|
||||
<!-- block contexts (diff -r) -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="RFile" fallthroughContext="AttrNormal">
|
||||
<RegExpr attribute="File" context="#pop" String="^(diff|Only in [^:]*:)" endRegion="chunk" lookAhead="true" column="0"/>
|
||||
<RegExpr attribute="Header" context="#stay" String="^&file;" column="0"/>
|
||||
<RegExpr attribute="Header" context="RChunkInFile" String="^\*+$" beginRegion="chunk" column="0"/>
|
||||
<IncludeRules context="File"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="RChunk" fallthroughContext="AttrNormal">
|
||||
<RegExpr attribute="Header" context="#stay" String="^\*\*\* .* \*\*\*\*$" column="0"/>
|
||||
<RegExpr attribute="Header" context="RChunkNew" String="^\-\-\- .* \-\-\-\-$" column="0"/>
|
||||
<IncludeRules context="Chunk"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="RChunkInFile" fallthroughContext="AttrNormal">
|
||||
<RegExpr attribute="Header" context="#stay" String="^\*\*\* .* \*\*\*\*$" column="0"/>
|
||||
<RegExpr attribute="Header" context="RChunkInFileNew" String="^\-\-\- .* \-\-\-\-$" column="0"/>
|
||||
<IncludeRules context="ChunkInFile"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="RChunkNew" fallthroughContext="AttrNormal">
|
||||
<Detect2Chars attribute="Header" context="#pop#pop" char="@" char1="@" lookAhead="true" column="0"/>
|
||||
<AnyChar attribute="Header" context="#pop#pop" String="0123456789" lookAhead="true" column="0"/>
|
||||
<DetectChar attribute="Changed line (new)" context="ChangedNew" char="!" column="0"/>
|
||||
<IncludeRules context="FindDiff"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="RChunkInFileNew" fallthroughContext="AttrNormal">
|
||||
<Detect2Chars attribute="Header" context="#pop#pop" char="@" char1="@" lookAhead="true" column="0"/>
|
||||
<AnyChar attribute="Header" context="#pop#pop" String="0123456789" lookAhead="true" column="0"/>
|
||||
<RegExpr attribute="File" context="#pop#pop" String="^&file;" endRegion="chunk" lookAhead="true" column="0"/>
|
||||
<DetectChar attribute="Changed line (new)" context="ChangedNew" char="!" column="0"/>
|
||||
<IncludeRules context="FindDiff"/>
|
||||
</context>
|
||||
|
||||
<!-- line contexts -->
|
||||
<context attribute="Removed line" lineEndContext="#pop" name="Removed"/>
|
||||
<context attribute="Added line" lineEndContext="#pop" name="Added"/>
|
||||
<context attribute="Changed line (old)" lineEndContext="#pop" name="ChangedOld"/>
|
||||
<context attribute="Changed line (new)" lineEndContext="#pop" name="ChangedNew"/>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="AttrNormal"/>
|
||||
<context attribute="File" lineEndContext="#pop" name="AttrFile"/>
|
||||
<context attribute="File" lineEndContext="#pop!File" name="AttrFile_File"/>
|
||||
<context attribute="File" lineEndContext="#pop!RFile" name="AttrFile_RFile"/>
|
||||
<context attribute="Header" lineEndContext="#pop" name="AttrHeader"/>
|
||||
<context attribute="Header" lineEndContext="#pop!Chunk" name="AttrHeader_Chunk"/>
|
||||
<context attribute="Header" lineEndContext="#pop!ChunkInFile" name="AttrHeader_ChunkInFile"/>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="File" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="Header" defStyleNum="dsDataType" spellChecking="false"/>
|
||||
<itemData name="Removed line" defStyleNum="dsString" spellChecking="false"/>
|
||||
<itemData name="Added line" defStyleNum="dsVariable" spellChecking="false"/>
|
||||
<itemData name="Changed line (old)" defStyleNum="dsString" spellChecking="false"/>
|
||||
<itemData name="Changed line (new)" defStyleNum="dsVariable" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
</language>
|
||||
@@ -0,0 +1,331 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY name "[A-Za-z_:][\w.:_-]*">
|
||||
<!ENTITY entref "&(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
|
||||
]>
|
||||
<language name="Django HTML Template" version="8" kateversion="5.79" section="Markup" extensions="*.htm;*.html" mimetype="text/html" author="Matthew Marshall (matthew@matthewmarshall.org)" license="LGPL" priority="9">
|
||||
|
||||
<!--
|
||||
Based off of the katepart html syntax highlighting by Wilbert Berendsen.
|
||||
|
||||
Email me with any bugs/suggestions/requests!
|
||||
-->
|
||||
|
||||
<highlighting>
|
||||
|
||||
<list name="blocktags">
|
||||
<item>for</item>
|
||||
<item>block</item>
|
||||
<item>if</item>
|
||||
<item>ifequal</item>
|
||||
<item>ifnotequal</item>
|
||||
<item>ifchanged</item>
|
||||
<item>blocktrans</item>
|
||||
<item>spaceless</item>
|
||||
<item>autoescape</item>
|
||||
</list>
|
||||
|
||||
<list name="endblocktags">
|
||||
<item>endfor</item>
|
||||
<item>endblock</item>
|
||||
<item>endif</item>
|
||||
<item>endifequal</item>
|
||||
<item>endifnotequal</item>
|
||||
<item>endifchanged</item>
|
||||
<item>endblocktrans</item>
|
||||
<item>endspaceless</item>
|
||||
<item>endautoescape</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Start" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="Mismatched Block Tag" context="#stay" String="\{%\s*end[a-z]+\s*%\}" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="FindHTML" />
|
||||
</context>
|
||||
|
||||
<context name="In Block" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr context="#pop" String="\{%\s*end[a-z]+\s*%\}" lookAhead="true" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="FindHTML" />
|
||||
</context>
|
||||
|
||||
<context name="FindTemplate" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="Template Comment" context="Template Comment" String="\{%\s*comment\s*%\}" beginRegion="templatecomment" />
|
||||
<Detect2Chars attribute="Template Var" context="Template Var" char="{" char1="{" />
|
||||
<Detect2Chars attribute="Template Tag" context="Template Tag" char="{" char1="%" />
|
||||
</context>
|
||||
|
||||
<context name="Template Comment" attribute="Template Comment" lineEndContext="#stay">
|
||||
<RegExpr attribute="Template Comment" context="#pop" String="\{%\s*endcomment\s*%\}" endRegion="templatecomment" />
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="Template Var" attribute="Template Var" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Template Var" context="#pop" char="}" char1="}" />
|
||||
<DetectChar attribute="Template Filter" context="Template Filter" char='|' />
|
||||
<Detect2Chars attribute="Error" context="#stay" char="{" char1="{" />
|
||||
<Detect2Chars attribute="Error" context="#stay" char="{" char1="%" />
|
||||
<Detect2Chars attribute="Error" context="#stay" char="%" char1="}" />
|
||||
</context>
|
||||
|
||||
<context name="Template Filter" attribute="Template Filter" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Template Var" context="#pop#pop" char="}" char1="}" />
|
||||
<DetectChar attribute="Template String" char="'" context="Single A-string"/>
|
||||
<DetectChar attribute="Template String" char=""" context="Single Q-string"/>
|
||||
<Detect2Chars attribute="Error" context="#stay" char="{" char1="{" />
|
||||
<Detect2Chars attribute="Error" context="#stay" char="{" char1="%" />
|
||||
<Detect2Chars attribute="Error" context="#stay" char="%" char1="}" />
|
||||
</context>
|
||||
|
||||
<context name="Template Tag" attribute="Template Tag" lineEndContext="#stay">
|
||||
<keyword String="blocktags" context="Found Block Tag" lookAhead="true" attribute="Template Tag" />
|
||||
<DetectIdentifier attribute="Template Tag" context="In Template Tag" />
|
||||
</context>
|
||||
|
||||
<context name="Found Block Tag" attribute="Template Tag" lineEndContext="#stay">
|
||||
<!-- This context is entered when a matching block tag was found through lookAhead. We need to capture it in an re, so that it can be matched with the end[blockname] tag later -->
|
||||
<RegExpr attribute="Template Tag" String="(&name;)" context="In Block Tag"/>
|
||||
</context>
|
||||
|
||||
<context name="In Block Tag" attribute="Template Tag Argument" dynamic="true" lineEndContext="#stay" >
|
||||
<RegExpr context="#pop#pop#pop" String="\{%\s*end%1\s*%\}" dynamic="true" attribute="Template Tag"/>
|
||||
<RegExpr context="Non Matching Tag" String="\{%\s*end[a-z]+\s*%\}" lookAhead="true" />
|
||||
<Detect2Chars attribute="Template Tag" context="In Block" char="%" char1="}" />
|
||||
<IncludeRules context="In Template Tag" />
|
||||
</context>
|
||||
|
||||
<context name="Non Matching Tag" attribute="Template Tag" lineEndContext="#stay">
|
||||
<keyword String="endblocktags" attribute="Mismatched Block Tag" context="#pop" />
|
||||
<!-- If the mismatched tag is one we don't know about, ignore it. -->
|
||||
<DetectIdentifier attribute="Template Tag" context="#pop" />
|
||||
</context>
|
||||
|
||||
<context name="In Template Tag" attribute="Template Tag Argument" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Template Tag" context="#pop#pop" char="%" char1="}" />
|
||||
<DetectChar attribute="Template String" char="'" context="Single A-string"/>
|
||||
<DetectChar attribute="Template String" char=""" context="Single Q-string"/>
|
||||
<Detect2Chars attribute="Error" context="#stay" char="{" char1="{" />
|
||||
<Detect2Chars attribute="Error" context="#stay" char="{" char1="%" />
|
||||
<Detect2Chars attribute="Error" context="#stay" char="}" char1="}" />
|
||||
</context>
|
||||
|
||||
<context name="Single A-string" attribute="Template String" lineEndContext="#stay">
|
||||
<HlCStringChar attribute="Template String" context="#stay"/>
|
||||
<!-- <RegExpr attribute="Operator" String="%[a-zA-Z]" context="#stay"/> -->
|
||||
<DetectChar attribute="Template String" char="'" context="#pop"/>
|
||||
</context>
|
||||
|
||||
<context name="Single Q-string" attribute="Template String" lineEndContext="#stay">
|
||||
<HlCStringChar attribute="Template String" context="#stay"/>
|
||||
<!-- <RegExpr attribute="Operator" String="%[a-zA-Z]" context="#stay"/> -->
|
||||
<DetectChar attribute="Template String" char=""" context="#pop"/>
|
||||
</context>
|
||||
|
||||
|
||||
|
||||
<context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier/>
|
||||
<StringDetect attribute="Comment" context="Comment" String="<!--" beginRegion="comment" />
|
||||
<StringDetect attribute="CDATA" context="CDATA" String="<![CDATA[" beginRegion="cdata" />
|
||||
<WordDetect attribute="Doctype" context="Doctype" String="<!DOCTYPE" beginRegion="doctype" />
|
||||
<RegExpr attribute="Processing Instruction" context="PI" String="<\?[\w:-]*" beginRegion="pi" />
|
||||
<WordDetect attribute="Element" context="CSS" String="<style" insensitive="true" beginRegion="style" />
|
||||
<WordDetect attribute="Element" context="JS" String="<script" insensitive="true" beginRegion="script" />
|
||||
<WordDetect attribute="Element" context="El Open" String="<pre" insensitive="true" beginRegion="pre" />
|
||||
<WordDetect attribute="Element" context="El Open" String="<div" insensitive="true" beginRegion="div" />
|
||||
<WordDetect attribute="Element" context="El Open" String="<table" insensitive="true" beginRegion="table" />
|
||||
<RegExpr attribute="Element" context="El Open" String="<&name;" />
|
||||
<WordDetect attribute="Element" context="El Close" String="</pre" insensitive="true" endRegion="pre" />
|
||||
<WordDetect attribute="Element" context="El Close" String="</div" insensitive="true" endRegion="div" />
|
||||
<WordDetect attribute="Element" context="El Close" String="</table" insensitive="true" endRegion="table" />
|
||||
<RegExpr attribute="Element" context="El Close" String="</&name;" />
|
||||
<!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
|
||||
<IncludeRules context="FindEntityRefs" />
|
||||
</context>
|
||||
|
||||
<context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
|
||||
<AnyChar attribute="Error" context="#stay" String="&<" />
|
||||
</context>
|
||||
|
||||
<context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
|
||||
<RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
|
||||
<AnyChar attribute="Error" context="#stay" String="&%" />
|
||||
</context>
|
||||
|
||||
<context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="Attribute" context="#stay" String="^&name;|\s+&name;" />
|
||||
<DetectChar attribute="Attribute" context="Value" char="=" />
|
||||
</context>
|
||||
|
||||
<context name="FindDTDRules" attribute="Normal Text" lineEndContext="#stay">
|
||||
<RegExpr attribute="Doctype" context="Doctype Markupdecl" String="<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
|
||||
</context>
|
||||
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="##Comments" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<DetectIdentifier/>
|
||||
<StringDetect attribute="Comment" context="#pop" String="-->" endRegion="comment" />
|
||||
<RegExpr attribute="Error" context="#stay" String="-(-(?!->))+" />
|
||||
</context>
|
||||
|
||||
<context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier/>
|
||||
<StringDetect attribute="CDATA" context="#pop" String="]]>" endRegion="cdata" />
|
||||
<StringDetect attribute="EntityRef" context="#stay" String="]]&gt;" />
|
||||
</context>
|
||||
|
||||
<context name="PI" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1=">" endRegion="pi" />
|
||||
</context>
|
||||
|
||||
<context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Doctype" context="#pop" char=">" endRegion="doctype" />
|
||||
<DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
|
||||
</context>
|
||||
|
||||
<context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
|
||||
<IncludeRules context="FindDTDRules" />
|
||||
<StringDetect attribute="Comment" context="Comment" String="<!--" beginRegion="comment" />
|
||||
<RegExpr attribute="Processing Instruction" context="PI" String="<\?[\w:-]*" beginRegion="pi" />
|
||||
<IncludeRules context="FindPEntityRefs" />
|
||||
</context>
|
||||
|
||||
<context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Doctype" context="#pop" char=">" />
|
||||
<DetectChar attribute="Value" context="Doctype Markupdecl DQ" char=""" />
|
||||
<DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="'" />
|
||||
</context>
|
||||
|
||||
<context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
|
||||
<DetectChar attribute="Value" context="#pop" char=""" />
|
||||
<IncludeRules context="FindPEntityRefs" />
|
||||
</context>
|
||||
|
||||
<context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
|
||||
<DetectChar attribute="Value" context="#pop" char="'" />
|
||||
<IncludeRules context="FindPEntityRefs" />
|
||||
</context>
|
||||
|
||||
<context name="El Open" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Element" context="#pop" char="/" char1=">" />
|
||||
<DetectChar attribute="Element" context="#pop" char=">" />
|
||||
<IncludeRules context="FindAttributes" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="El Close" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Element" context="#pop" char=">" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="El Close 2" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Element" context="#pop#pop#pop" char=">" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="El Close 3" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Element" context="#pop#pop#pop#pop" char=">" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="CSS" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Element" context="#pop" char="/" char1=">" endRegion="style" />
|
||||
<DetectChar attribute="Element" context="CSS content" char=">" />
|
||||
<IncludeRules context="FindAttributes" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
|
||||
<WordDetect attribute="Element" context="El Close 2" String="</style" insensitive="true" endRegion="style" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="##CSS" includeAttrib="true"/>
|
||||
</context>
|
||||
|
||||
<context name="JS" attribute="Normal Text" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Element" context="#pop" char="/" char1=">" endRegion="script" />
|
||||
<DetectChar attribute="Element" context="JS content" char=">" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="FindAttributes" />
|
||||
<RegExpr attribute="Error" context="#stay" String="\S" />
|
||||
</context>
|
||||
|
||||
<context name="JS content" attribute="Normal Text" lineEndContext="#stay">
|
||||
<WordDetect attribute="Element" context="El Close 2" String="</script" insensitive="true" endRegion="script" />
|
||||
<RegExpr attribute="Comment" context="JS comment close" String="//(?=.*</script\b)" insensitive="true" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
|
||||
</context>
|
||||
|
||||
<context name="JS comment close" attribute="Comment" lineEndContext="#pop">
|
||||
<WordDetect attribute="Element" context="El Close 3" String="</script" insensitive="true" endRegion="script" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Value NQ">
|
||||
<DetectChar attribute="Value" context="Value DQ" char=""" />
|
||||
<DetectChar attribute="Value" context="Value SQ" char="'" />
|
||||
<DetectSpaces />
|
||||
</context>
|
||||
|
||||
<context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
|
||||
<IncludeRules context="FindEntityRefs" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<RegExpr attribute="Value" context="#stay" String="/(?!>)|[^/><"'\s]" />
|
||||
</context>
|
||||
|
||||
<context name="Value DQ" attribute="Value" lineEndContext="#stay">
|
||||
<DetectChar attribute="Value" context="#pop#pop" char=""" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="FindEntityRefs" />
|
||||
</context>
|
||||
|
||||
<context name="Value SQ" attribute="Value" lineEndContext="#stay">
|
||||
<DetectChar attribute="Value" context="#pop#pop" char="'" />
|
||||
<IncludeRules context="FindTemplate" />
|
||||
<IncludeRules context="FindEntityRefs" />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
|
||||
<itemData name="Processing Instruction" defStyleNum="dsKeyword" />
|
||||
<itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
|
||||
<itemData name="Element" defStyleNum="dsKeyword" />
|
||||
<itemData name="Attribute" defStyleNum="dsOthers" />
|
||||
<itemData name="Value" defStyleNum="dsString" />
|
||||
<itemData name="EntityRef" defStyleNum="dsDecVal" />
|
||||
<itemData name="PEntityRef" defStyleNum="dsDecVal" />
|
||||
<itemData name="Error" defStyleNum="dsError" />
|
||||
<itemData name="Template Var" defStyleNum="dsFunction" />
|
||||
<itemData name="Template Tag" defStyleNum="dsFunction" />
|
||||
<itemData name="Template Tag Argument" defStyleNum="dsFunction" />
|
||||
<itemData name="Template String" defStyleNum="dsString" />
|
||||
<itemData name="Template Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Template Filter" defStyleNum="dsOthers" />
|
||||
<itemData name="Mismatched Block Tag" defStyleNum="dsError" />
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="multiLine" start="{% comment %}" end="{% endcomment %}" region="templatecomment" />
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
This file is part of KDE's kate project.
|
||||
|
||||
SPDX-FileCopyrightText: James Turnbull <james@lovedthanlost.net>
|
||||
SPDX-FileCopyrightText: 2020-2021 Alex Turbov <i.zaufi@gmail.com>
|
||||
|
||||
SPDX-License-Identifier: MIT
|
||||
-->
|
||||
<language
|
||||
name="Dockerfile"
|
||||
section="Other"
|
||||
version="11"
|
||||
kateversion="5.79"
|
||||
extensions="Dockerfile;Containerfile"
|
||||
author="James Turnbull (james@lovedthanlost.net)"
|
||||
license="MIT"
|
||||
>
|
||||
<highlighting>
|
||||
<list name="keywords-trivial">
|
||||
<item>AS</item>
|
||||
<item>EXPOSE</item>
|
||||
<item>MAINTAINER</item>
|
||||
<item>ONBUILD</item>
|
||||
<item>STOPSIGNAL</item>
|
||||
<item>USER</item>
|
||||
<item>WORKDIR</item>
|
||||
<item>VOLUME</item>
|
||||
<item>SHELL</item>
|
||||
</list>
|
||||
<list name="keywords-options">
|
||||
<item>ADD</item>
|
||||
<item>COPY</item>
|
||||
<item>FROM</item>
|
||||
<item>HEALTHCHECK</item>
|
||||
</list>
|
||||
<list name="keywords-key-value">
|
||||
<item>ARG</item>
|
||||
<item>ENV</item>
|
||||
<item>LABEL</item>
|
||||
</list>
|
||||
<list name="keywords-shell-form">
|
||||
<item>CMD</item>
|
||||
<item>ENTRYPOINT</item>
|
||||
</list>
|
||||
<list name="keywords-shell-form-with-options">
|
||||
<item>RUN</item>
|
||||
</list>
|
||||
<contexts>
|
||||
<context name="normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Comment" context="Comment" char="#" />
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords-trivial" />
|
||||
<keyword attribute="Keyword" context="Maybe Option" String="keywords-options" />
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords-key-value" />
|
||||
<keyword attribute="Keyword" context="Maybe Shell Form" String="keywords-shell-form" />
|
||||
<keyword attribute="Keyword" context="Maybe Option for Shell Form" String="keywords-shell-form-with-options" />
|
||||
<DetectIdentifier />
|
||||
<DetectChar attribute="String" context="string"" char=""" />
|
||||
<DetectChar attribute="String" context="string'" char="'" />
|
||||
<LineContinue attribute="Operator" context="#stay" />
|
||||
</context>
|
||||
|
||||
<context name="Maybe Option" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Option" context="KwOption" char="-" char1="-"/>
|
||||
<LineContinue attribute="Normal Text" context="#stay" />
|
||||
</context>
|
||||
|
||||
<context name="Maybe Shell Form" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="BashOneLine##Bash">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Normal Text" context="#pop" char="[" lookAhead="true" />
|
||||
<LineContinue attribute="Operator" context="#stay" />
|
||||
</context>
|
||||
|
||||
<context name="Maybe Option for Shell Form" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="BashOneLine##Bash">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Normal Text" context="#pop" char="[" lookAhead="true" />
|
||||
<Detect2Chars attribute="Option" context="KwOption" char="-" char1="-"/>
|
||||
<LineContinue attribute="Operator" context="#stay" />
|
||||
</context>
|
||||
|
||||
<context attribute="Option" lineEndContext="#pop#pop" name="KwOption" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Option" context="#pop" String="[a-z\-]+(=[^\s]+)?"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<RegExpr attribute="Directive" context="#stay" String="(syntax|escape)=[^\s]+"/>
|
||||
<LineContinue attribute="Comment" context="#stay" />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="string"" attribute="String" lineEndContext="#pop">
|
||||
<LineContinue attribute="Operator" context="#stay" />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
</context>
|
||||
|
||||
<context name="string'" attribute="String" lineEndContext="#pop">
|
||||
<LineContinue attribute="String" context="#stay" />
|
||||
<DetectChar attribute="String" context="#pop" char="'" />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Directive" defStyleNum="dsCommentVar" />
|
||||
<itemData name="Operator" defStyleNum="dsOperator" />
|
||||
<itemData name="Option" defStyleNum="dsOperator" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0" />
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="0" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name = "singleLine" start = "#" />
|
||||
</comments>
|
||||
</general>
|
||||
</language>
|
||||
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
|
||||
@@ -0,0 +1,644 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY label "[^\s]+">
|
||||
<!ENTITY varname "[A-Za-z_][A-Za-z0-9_.]*"> <!-- valid character in a variable name -->
|
||||
<!ENTITY varname_set "&varname;(?=(\[(%%)?(&varname;|\d+)\]|!&varname;!)?(=|\s*$))|%~?\d|%%(&varname;|[0-9*#])"> <!-- variable in set cmd -->
|
||||
<!ENTITY eop "(?=([\s\\;"%]|$))"> <!-- end of path -->
|
||||
<!ENTITY pathpart "[^\s\\%!;/:*?"><|&]"> <!-- valid character in a file name -->
|
||||
]>
|
||||
<language name="MS-DOS Batch" version="9" kateversion="5.62" section="Scripts" extensions="*.bat;*.cmd" mimetype="application/x-dos" casesensitive="0" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="LGPL">
|
||||
|
||||
<!-- (c) 2006, 2009, 2010 Matthew Woehlke (mw_triad@users.sourceforge.net)
|
||||
Released under the LGPL -->
|
||||
|
||||
<highlighting>
|
||||
<list name="builtins">
|
||||
<item>assoc</item>
|
||||
<item>break</item>
|
||||
<item>cd</item>
|
||||
<item>chdir</item>
|
||||
<item>cls</item>
|
||||
<item>color</item>
|
||||
<item>copy</item>
|
||||
<item>date</item>
|
||||
<item>del</item>
|
||||
<item>dir</item>
|
||||
<item>endlocal</item>
|
||||
<item>erase</item>
|
||||
<item>exit</item>
|
||||
<item>ftype</item>
|
||||
<item>md</item>
|
||||
<item>mkdir</item>
|
||||
<item>move</item>
|
||||
<item>path</item>
|
||||
<item>pause</item>
|
||||
<item>popd</item>
|
||||
<item>prompt</item>
|
||||
<item>pushd</item>
|
||||
<item>rd</item>
|
||||
<item>ren</item>
|
||||
<item>rename</item>
|
||||
<item>rmdir</item>
|
||||
<item>runas</item>
|
||||
<item>setlocal</item>
|
||||
<item>shift</item>
|
||||
<item>start</item>
|
||||
<item>time</item>
|
||||
<item>title</item>
|
||||
<item>type</item>
|
||||
<item>ver</item>
|
||||
<item>verify</item>
|
||||
<item>vol</item>
|
||||
</list>
|
||||
|
||||
<!-- these need special handling -->
|
||||
<list name="special commands">
|
||||
<item>call</item>
|
||||
<item>echo</item>
|
||||
<item>else</item>
|
||||
<item>for</item>
|
||||
<item>in</item>
|
||||
<item>do</item>
|
||||
<item>goto</item>
|
||||
<item>if</item>
|
||||
<item>not</item>
|
||||
<item>rem</item>
|
||||
<item>set</item>
|
||||
</list>
|
||||
|
||||
<list name="commands">
|
||||
<!-- the basics -->
|
||||
<item>at</item>
|
||||
<item>attrib</item>
|
||||
<item>break</item>
|
||||
<item>cacls</item>
|
||||
<item>chcp</item>
|
||||
<item>chkdsk</item>
|
||||
<item>chkntfs</item>
|
||||
<item>cmd</item>
|
||||
<item>comp</item>
|
||||
<item>compact</item>
|
||||
<item>convert</item>
|
||||
<item>diskcomp</item>
|
||||
<item>diskcopy</item>
|
||||
<item>doskey</item>
|
||||
<item>fc</item>
|
||||
<item>find</item>
|
||||
<item>findstr</item>
|
||||
<item>format</item>
|
||||
<item>graftabl</item>
|
||||
<item>help</item>
|
||||
<item>label</item>
|
||||
<item>mode</item>
|
||||
<item>more</item>
|
||||
<item>print</item>
|
||||
<item>recover</item>
|
||||
<item>replace</item>
|
||||
<item>sort</item>
|
||||
<item>subst</item>
|
||||
<item>tree</item>
|
||||
<item>xcopy</item>
|
||||
</list>
|
||||
|
||||
<list name="comparators">
|
||||
<item>EQU</item>
|
||||
<item>NEQ</item>
|
||||
<item>LSS</item>
|
||||
<item>LEQ</item>
|
||||
<item>GTR</item>
|
||||
<item>GEQ</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Start">
|
||||
<DetectSpaces/>
|
||||
<!-- general syntactical stuff -->
|
||||
<keyword attribute="Builtin" context="Command" String="builtins"/>
|
||||
<keyword attribute="Command" context="Command" String="commands"/>
|
||||
<!-- special built-ins -->
|
||||
<WordDetect attribute="Builtin" context="CmdSet" String="set" insensitive="1"/>
|
||||
<WordDetect attribute="Builtin" context="CmdEcho" String="echo" insensitive="1" lookAhead="1"/>
|
||||
<WordDetect attribute="ControlFlow" context="CmdIf" String="if" insensitive="1"/>
|
||||
<WordDetect attribute="ControlFlow" context="#stay" String="else" insensitive="1"/>
|
||||
<WordDetect attribute="ControlFlow" context="CmdFor" String="for" insensitive="1"/>
|
||||
<WordDetect attribute="ControlFlow" context="CmdGoto" String="goto" insensitive="1"/>
|
||||
<WordDetect attribute="Builtin" context="CmdCall" String="call" insensitive="1"/>
|
||||
<WordDetect attribute="Comment" context="Comment" String="rem" insensitive="1"/>
|
||||
<DetectChar attribute="Keyword" context="#stay" char="@"/>
|
||||
<!-- other syntaxes -->
|
||||
<StringDetect attribute="Comment" context="Comment" String="::"/>
|
||||
<DetectChar attribute="Label" context="Label" char=":" firstNonSpace="true"/>
|
||||
<DetectChar attribute="Keyword" context="NestedStart" char="(" beginRegion="body"/>
|
||||
<IncludeRules context="FindRedirections"/>
|
||||
<RegExpr attribute="Path" context="Command" String="[^\s%!;*?"><|&]+"/>
|
||||
<StringDetect attribute="Keyword" String="||"/>
|
||||
<StringDetect attribute="Keyword" String="&&"/>
|
||||
<DetectChar attribute="Redirection" char="|"/>
|
||||
<DetectChar attribute="Keyword" char="&"/>
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="NestedStart">
|
||||
<DetectChar attribute="Keyword" context="#pop" char=")" endRegion="body"/>
|
||||
<IncludeRules context="Start"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindBranches">
|
||||
<StringDetect attribute="Keyword" context="#pop" String="||"/>
|
||||
<StringDetect attribute="Keyword" context="#pop" String="&&"/>
|
||||
<DetectChar attribute="Redirection" context="#pop" char="|"/>
|
||||
<DetectChar attribute="Keyword" context="#pop" char="&"/>
|
||||
<DetectChar attribute="Keyword" context="#pop" char=")" endRegion="body"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindRedirections">
|
||||
<RegExpr attribute="Redirection" context="Redirection" String="[0-9]*(>>?|<)"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Redirection" fallthroughContext="#pop!Path">
|
||||
<DetectSpaces context="#pop!Path"/>
|
||||
<RegExpr attribute="Redirection" context="#pop" String="&[0-9]+|"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
|
||||
<Detect2Chars attribute="Escape" context="Substitution" char="%" char1="%"/>
|
||||
<IncludeRules context="FindVariables"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Substitution" fallthroughContext="#pop">
|
||||
<RegExpr attribute="Variable Expansion" context="#pop!SubstitutionVariable" String="&varname;(\[(%%)?(&varname;|\d+)\])*(:~(%%&varname;|-?[0-9]+)(,(%%&varname;|-?[0-9]+))?|:[^=]+=[^%]*)?%|[0-9*#]|~[fdpnxsatz]*(\$&varname;:)?[0-9#]|" lookAhead="1"/>
|
||||
<DetectIdentifier attribute="Variable" context="#pop"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="SubstitutionVariable" fallthroughContext="#pop!VariableRegular1">
|
||||
<DetectChar attribute="Variable Expansion" char="~" context="#pop!VariableModificator"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindVariables">
|
||||
<!--
|
||||
%var%
|
||||
%var:~N,N%
|
||||
%var:old=new%
|
||||
%~n1
|
||||
%~$var:1
|
||||
%1
|
||||
%*
|
||||
!var!
|
||||
!var:~N,N!
|
||||
!var:old=new!
|
||||
!%...%!
|
||||
|
||||
prefix:
|
||||
[%!]var[...]
|
||||
[%!]var%%
|
||||
-->
|
||||
<RegExpr attribute="Variable Expansion" context="Variable" String="%(&varname;(\[(%%)?(&varname;|\d+)\])*(:~(%%&varname;|-?[0-9]+)(,(%%&varname;|-?[0-9]+))?|:[^=]+=[^%]*)?%|[0-9*#])|%~[fdpnxsatz]*(\$&varname;:)?[0-9#]|!%(&varname;(\[(%%)?(&varname;|\d+)\]|%%&varname;)*%|[0-9*#])!|!&varname;(\[(%%)?(&varname;|\d+)\]|%%&varname;)*(:~(%%&varname;|-?[0-9]+)(,(%%&varname;|-?[0-9]+))?|:[^=]+=[^!]*)?!" lookAhead="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Variable">
|
||||
<StringDetect attribute="Variable Expansion" String="%~" context="#pop!VariableModificator"/>
|
||||
<DetectChar attribute="Variable Expansion" char="%" context="#pop!VariableRegular1"/>
|
||||
<DetectChar attribute="Variable Expansion" char="!" context="#pop!VariableRegular2"/>
|
||||
</context>
|
||||
<!-- %~ -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableModificator">
|
||||
<AnyChar attribute="Variable Expansion" String="fdpnxsatz"/>
|
||||
<DetectChar attribute="Variable Expansion" char="$" context="#pop!VariableFind"/>
|
||||
<AnyChar attribute="Variable" String="0123456789#" context="#pop"/>
|
||||
</context>
|
||||
<!-- %~$ -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableFind">
|
||||
<DetectIdentifier attribute="Variable"/>
|
||||
<DetectChar attribute="Variable Expansion" char=":"/>
|
||||
<AnyChar attribute="Variable" String="0123456789#" context="#pop"/>
|
||||
<DetectChar attribute="Variable" char="."/>
|
||||
</context>
|
||||
<!-- % -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableRegular1">
|
||||
<DetectChar attribute="Variable Expansion" char="%" context="#pop"/>
|
||||
<DetectIdentifier attribute="Variable"/>
|
||||
<AnyChar attribute="Variable" String="0123456789*#" context="#pop"/>
|
||||
<StringDetect attribute="Variable Expansion" String=":~" context="#pop!VariableSub"/>
|
||||
<DetectChar attribute="Variable Expansion" char=":" context="#pop!VariableReplace1"/>
|
||||
<IncludeRules context="FindVariableRegularKey"/>
|
||||
<DetectChar attribute="Variable" char="."/>
|
||||
</context>
|
||||
<!-- ! -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableRegular2">
|
||||
<DetectChar attribute="Variable Expansion" char="!" context="#pop"/>
|
||||
<DetectIdentifier attribute="Variable"/>
|
||||
<StringDetect attribute="Variable Expansion" String=":~" context="#pop!VariableSub"/>
|
||||
<DetectChar attribute="Variable Expansion" char=":" context="#pop!VariableReplace2"/>
|
||||
<IncludeRules context="FindVariableRegularKey"/>
|
||||
<IncludeRules context="FindVariableRegularEscaped"/>
|
||||
<DetectChar attribute="Variable Expansion" char="%" context="VariableRegular1"/>
|
||||
<DetectChar attribute="Variable" char="."/>
|
||||
</context>
|
||||
<!-- %% in !var1%%var2! -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindVariableRegularEscaped">
|
||||
<StringDetect attribute="Escape" String="%%" context="VariableRegularEscaped"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableRegularEscaped">
|
||||
<DetectIdentifier attribute="Variable" context="#pop"/>
|
||||
</context>
|
||||
<!-- for [ ... ] -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="FindVariableRegularKey">
|
||||
<DetectChar attribute="Symbol" char="[" context="VariableRegularKey"/>
|
||||
</context>
|
||||
<!-- [ -->
|
||||
<context attribute="String" lineEndContext="#stay" name="VariableRegularKey">
|
||||
<DetectChar attribute="Symbol" char="]" context="#pop"/>
|
||||
<StringDetect attribute="Escape" String="%%" context="VariableRegularKeyVar"/>
|
||||
<IncludeRules context="FindNumber"/>
|
||||
<DetectIdentifier attribute="String"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="VariableRegularKeyVar" fallthroughContext="#pop">
|
||||
<DetectIdentifier attribute="Variable" context="#pop"/>
|
||||
</context>
|
||||
<!-- %var:~ and !var:~ -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableSub">
|
||||
<StringDetect attribute="Escape" String="%%"/>
|
||||
<AnyChar attribute="Variable Expansion" String="%!" context="#pop"/>
|
||||
<IncludeRules context="FindNumber"/>
|
||||
<DetectIdentifier attribute="Variable"/>
|
||||
<DetectChar attribute="Number" char="-"/>
|
||||
<DetectChar attribute="Variable Expansion" char=","/>
|
||||
<DetectChar attribute="Variable" char="."/>
|
||||
</context>
|
||||
<!-- %var: -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace1">
|
||||
<RegExpr attribute="String" String="[^=]+" context="#pop!VariableReplace1Sep"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace1Sep">
|
||||
<DetectChar attribute="Variable Expansion" char="=" context="#pop!VariableReplace1P2"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace1P2">
|
||||
<DetectChar attribute="Variable Expansion" char="%" context="#pop"/>
|
||||
<RegExpr attribute="String" String="[^%]+"/>
|
||||
</context>
|
||||
<!-- !var: -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace2">
|
||||
<RegExpr attribute="String" String="[^=]+" context="#pop!VariableReplace2Sep"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace2Sep">
|
||||
<DetectChar attribute="Variable Expansion" char="=" context="#pop!VariableReplace2P2"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace2P2">
|
||||
<DetectChar attribute="Variable Expansion" char="!" context="#pop"/>
|
||||
<RegExpr attribute="String" String="[^!]+"/>
|
||||
</context>
|
||||
|
||||
<!-- basic sub-contexts -->
|
||||
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="##Comments"/>
|
||||
<DetectIdentifier/>
|
||||
<IncludeRules context="FindUnquotedStringEscape"/>
|
||||
<AnyChar attribute="Error" String="&|^<>()"/>
|
||||
</context>
|
||||
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<DetectSpaces attribute="String"/>
|
||||
<Detect2Chars attribute="Escape" char="\" char1="""/>
|
||||
<Detect2Chars attribute="Escape" char="\" char1="\"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<DetectIdentifier attribute="String"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Command">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="FindUnquotedString"/>
|
||||
<IncludeRules context="FindSpecialCommandOption"/>
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="FindSpecialCommandOption">
|
||||
<RegExpr attribute="Option" context="#stay" String="[/-][A-Za-z0-9][A-Za-z0-9_]*:?"/>
|
||||
<RegExpr attribute="Path" context="#stay" String="[.]+&eop;|[A-Za-z][A-Za-z.]*:(\\+&pathpart;*)*|&pathpart;*(\\+&pathpart;*)+"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="Label">
|
||||
<RegExpr attribute="Label" context="Comment" String="&label;"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Path" lineEndContext="#pop" name="Path">
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<AnyChar attribute="Normal Text" context="#pop" String=" 	\%/:*?"><|&" lookAhead="true"/>
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="Error">
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="FindNumber">
|
||||
<HlCHex attribute="Hex"/>
|
||||
<HlCOct attribute="Octal"/>
|
||||
<Int attribute="Number"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="FindUnquotedStringEscape">
|
||||
<LineContinue attribute="Escape" char="^"/>
|
||||
<RegExpr attribute="Escape" context="#stay" String="\^."/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="FindUnquotedString">
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<IncludeRules context="FindUnquotedStringEscape"/>
|
||||
<IncludeRules context="FindRedirections"/>
|
||||
<IncludeRules context="FindBranches"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="UnquotedString">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier/>
|
||||
<IncludeRules context="FindUnquotedString"/>
|
||||
</context>
|
||||
|
||||
<!-- special sub-contexts -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSet" fallthroughContext="#pop!Error">
|
||||
<IncludeRules context="CmdSetVar"/>
|
||||
<WordDetect attribute="Option" context="#pop!CmdSetVar" String="/p" insensitive="1"/>
|
||||
<WordDetect attribute="Option" context="#pop!CmdSetExpr" String="/a" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSetVar" fallthroughContext="#pop!Error">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="String" context="#pop!CmdSetQuotedVar" char="""/>
|
||||
<RegExpr attribute="Variable" context="#pop!CmdSetVar=" String="&varname_set;"/>
|
||||
<DetectChar attribute="Symbol" context="#pop!UnquotedString" char="="/>
|
||||
</context>
|
||||
<!-- set var -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSetVar=">
|
||||
<DetectChar attribute="Symbol" context="#pop!UnquotedString" char="="/>
|
||||
<IncludeRules context="FindCmdSetVarSuffix"/>
|
||||
</context>
|
||||
<context attribute="Error" lineEndContext="#pop" name="FindCmdSetVarSuffix">
|
||||
<DetectChar attribute="Variable Expansion" char="!"/>
|
||||
<DetectIdentifier attribute="Variable"/>
|
||||
<IncludeRules context="FindVariableRegularKey"/>
|
||||
</context>
|
||||
<!-- set " -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSetQuotedVar" fallthroughContext="#pop!Error">
|
||||
<RegExpr attribute="Variable" context="#pop!CmdSetQuotedVar=" String="&varname_set;"/>
|
||||
<DetectChar attribute="Symbol" context="#pop!String" char="="/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<!-- set "var -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSetQuotedVar=">
|
||||
<DetectChar attribute="Symbol" context="#pop!String" char="="/>
|
||||
<IncludeRules context="FindCmdSetVarSuffix"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
|
||||
<!-- set /a -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSetExpr" fallthroughContext="#pop!CmdSetUnquotedExpr">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="String" context="CmdSetQuotedExpr" char="""/>
|
||||
<DetectIdentifier attribute="Variable" context="CmdSetUnquotedExpr"/>
|
||||
<DetectChar attribute="Keyword" char=","/>
|
||||
</context>
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSetQuotedExpr">
|
||||
<IncludeRules context="FindVariables"/>
|
||||
<StringDetect attribute="Operator" String="%%"/>
|
||||
<AnyChar attribute="Operator" String="=*/%+-&^|!~"/>
|
||||
<AnyChar attribute="Symbol" String="()[],"/>
|
||||
<DetectIdentifier attribute="Variable"/>
|
||||
<StringDetect attribute="Operator" String="<<"/>
|
||||
<StringDetect attribute="Operator" String=">>"/>
|
||||
<IncludeRules context="FindNumber"/>
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdSetUnquotedExpr">
|
||||
<AnyChar attribute="Symbol" String="()[]"/>
|
||||
<IncludeRules context="FindUnquotedString"/>
|
||||
<AnyChar attribute="Operator" String="=+-/^*!"/>
|
||||
<DetectChar attribute="Keyword" context="#pop" char=","/>
|
||||
<DetectIdentifier attribute="Variable"/>
|
||||
<IncludeRules context="FindNumber"/>
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
</context>
|
||||
|
||||
<!-- echo -->
|
||||
<context attribute="Echoed Text" lineEndContext="#pop" name="CmdEcho">
|
||||
<RegExpr attribute="Builtin" context="#pop" String="echo\s+o(ff|n)\s*(?=[&|]|$)" insensitive="1"/>
|
||||
<StringDetect attribute="Builtin" context="#pop!CmdEcho2" String="echo" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Echoed Text" lineEndContext="#pop" name="CmdEcho2">
|
||||
<DetectSpaces/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<IncludeRules context="FindUnquotedStringEscape"/>
|
||||
<IncludeRules context="FindRedirections"/>
|
||||
<IncludeRules context="FindBranches"/>
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
|
||||
<!-- goto -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdGoto">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<DetectChar attribute="Label" char=":"/>
|
||||
<RegExpr attribute="Label" context="#pop" String="&label;"/>
|
||||
</context>
|
||||
|
||||
<!-- call -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdCall" fallthroughContext="#pop!Command">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<DetectChar attribute="Label" char=":"/>
|
||||
<RegExpr attribute="Label" context="#pop!Command" String="&label;"/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- if -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIf" fallthroughContext="CmdIfCond">
|
||||
<DetectSpaces/>
|
||||
<StringDetect attribute="Option" String="/i" insensitive="1"/>
|
||||
<WordDetect attribute="Keyword" String="not" insensitive="1"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCond" fallthroughContext="CmdIfCondCmp">
|
||||
<WordDetect attribute="Option" context="CmdIfCondExist" String="exist" insensitive="1"/>
|
||||
<WordDetect attribute="Option" context="CmdIfCondDefined" String="defined" insensitive="1"/>
|
||||
<WordDetect attribute="Option" context="CmdIfCondNum" String="errorlevel" insensitive="1"/>
|
||||
<WordDetect attribute="Option" context="CmdIfCondNum" String="cmdextversion" insensitive="1"/>
|
||||
</context>
|
||||
|
||||
<!-- if exist -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondExist" fallthroughContext="#pop#pop#pop">
|
||||
<DetectSpaces context="CmdIfCondExistPath"/>
|
||||
</context>
|
||||
<context attribute="Path" lineEndContext="#pop" name="CmdIfCondExistPath" fallthroughContext="#pop#pop#pop#pop">
|
||||
<DetectSpaces context="#pop#pop#pop#pop" attribute="Normal Text"/>
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
|
||||
<!-- if defined -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondDefined" fallthroughContext="#pop#pop#pop">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier context="#pop#pop#pop" attribute="Variable"/>
|
||||
</context>
|
||||
|
||||
<!-- if errorlevel | if cmdextversion -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondNum" fallthroughContext="#pop#pop#pop">
|
||||
<DetectSpaces/>
|
||||
<Int context="#pop#pop#pop" attribute="Number"/>
|
||||
<IncludeRules context="FindVariables"/>
|
||||
</context>
|
||||
|
||||
<!-- For
|
||||
if xxx op yyy
|
||||
and
|
||||
if xxx==yyy
|
||||
-->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmp">
|
||||
<DetectSpaces context="#pop!CmdIfCondCmpOp"/>
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<DetectIdentifier/>
|
||||
<StringDetect String="==" attribute="Keyword" context="CmdIfCondCmpOperand2"/>
|
||||
</context>
|
||||
<!-- fallthroughContext for operand as option: if %CasseSensitive% "%a%"=="x" -->
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmpOp" fallthroughContext="#pop#pop">
|
||||
<keyword context="CmdIfCondCmpOpSpace" String="comparators" attribute="Keyword"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmpOpSpace">
|
||||
<DetectSpaces context="#pop!CmdIfCondCmpOperand2"/>
|
||||
<RegExpr String="[^\s]+" attribute="Error" />
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmpOperand2">
|
||||
<DetectSpaces context="#pop#pop#pop#pop"/>
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<DetectIdentifier/>
|
||||
</context>
|
||||
|
||||
|
||||
<!-- 'for' sub-contexts -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdFor">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<RegExpr attribute="Variable" context="CmdForIn" String="%%[a-z#$@]" insensitive="1"/>
|
||||
<StringDetect attribute="Option" context="#stay" String="/d" insensitive="1"/>
|
||||
<StringDetect attribute="Option" context="CmdForR" String="/r" insensitive="1"/>
|
||||
<StringDetect attribute="Option" context="CmdForR" String="/f" insensitive="1"/>
|
||||
<StringDetect attribute="Option" context="CmdForL" String="/l" insensitive="1"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdForIn">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<WordDetect attribute="Keyword" context="CmdForList" String="in" insensitive="1"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdForList">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<DetectChar attribute="Keyword" context="CmdForListBody" char="("/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBody" fallthroughContext="#pop!CmdForListBodyText">
|
||||
<DetectSpaces/>
|
||||
<AnyChar String="`'" context="#pop!CmdForListBodyStartCmd"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBodyStartCmd" fallthroughContext="#pop!CmdForListBodyText">
|
||||
<DetectSpaces/>
|
||||
<keyword attribute="Builtin" context="#pop!CmdForListBodyCmd" String="builtins"/>
|
||||
<keyword attribute="Command" context="#pop!CmdForListBodyCmd" String="commands"/>
|
||||
<RegExpr attribute="Path" context="#pop!CmdForListBodyCmd" String="[^\s%!;*?"><|&]+"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBodyCmd">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier/>
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<StringDetect attribute="Escape" context="#pop!CmdForListBodyStartCmd" String="^|"/>
|
||||
<StringDetect attribute="Escape" context="#pop!CmdForListBodyStartCmd" String="^&"/>
|
||||
<IncludeRules context="FindUnquotedStringEscape"/>
|
||||
<IncludeRules context="FindRedirections"/>
|
||||
<IncludeRules context="FindSpecialCommandOption"/>
|
||||
<DetectChar attribute="Keyword" context="CmdForDo" char=")"/>
|
||||
<AnyChar attribute="Error" String="&|^<>()"/>
|
||||
</context>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBodyText">
|
||||
<DetectSpaces/>
|
||||
<DetectIdentifier/>
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
<DetectChar attribute="Keyword" context="CmdForDo" char=")"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdForDo">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<WordDetect attribute="Keyword" context="#pop#pop#pop#pop#pop" String="do" insensitive="1"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="CmdForR">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<IncludeRules context="FindStrings"/>
|
||||
<IncludeRules context="FindUnquotedStringEscape"/>
|
||||
<RegExpr attribute="Path" String="([a-z][a-z.]*:)?[.]*\\*[^^\s\\%!;/:*?"><|&%]*&eop;" insensitive="1"/>
|
||||
<DetectIdentifier attribute="Normal Text"/>
|
||||
<RegExpr attribute="Variable" context="#pop!CmdForIn" String="%%[a-z#$@](?=[$\s])" insensitive="1"/>
|
||||
<IncludeRules context="FindSubstitutions"/>
|
||||
</context>
|
||||
|
||||
<!-- 'for /L' sub-contexts -->
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdForL">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<RegExpr attribute="Variable" context="CmdForLIn" String="%%[a-z#$@]" insensitive="1"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdForLIn">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<WordDetect attribute="Keyword" context="CmdForLRange" String="in" insensitive="1"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdForLRange">
|
||||
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
||||
<DetectChar attribute="Keyword" context="CmdForLStart" char="("/>
|
||||
</context>
|
||||
|
||||
<context attribute="Error" lineEndContext="#pop" name="CmdForLStart">
|
||||
<DetectSpaces attribute="Normal Text"/>
|
||||
<AnyChar attribute="Keyword" String=";,="/>
|
||||
<DetectChar attribute="Number" char="-"/>
|
||||
<IncludeRules context="FindNumber"/>
|
||||
<IncludeRules context="FindVariables"/>
|
||||
<DetectChar attribute="Keyword" context="#pop!CmdForDo" char=")"/>
|
||||
<DetectIdentifier attribute="String"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="ControlFlow" defStyleNum="dsControlFlow" spellChecking="false"/>
|
||||
<itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
|
||||
<itemData name="Label" defStyleNum="dsOthers"/>
|
||||
<itemData name="Builtin" defStyleNum="dsBuiltIn"/>
|
||||
<itemData name="Command" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Redirection" defStyleNum="dsKeyword" spellChecking="false"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="Escape" defStyleNum="dsSpecialChar" spellChecking="false"/>
|
||||
<itemData name="Echoed Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Variable" defStyleNum="dsVariable"/>
|
||||
<itemData name="Variable Expansion" defStyleNum="dsPreprocessor" spellChecking="false"/>
|
||||
<itemData name="Path" defStyleNum="dsNormal"/>
|
||||
<itemData name="Option" defStyleNum="dsAttribute" spellChecking="false"/>
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
|
||||
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>
|
||||
<itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>
|
||||
<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="rem "/>
|
||||
</comments>
|
||||
<keywords casesensitive="0" additionalDeliminator="@"/>
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,175 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!-- Adapted from the VIM highlighter, by Markus Mottl (markus@oefai.at) -->
|
||||
<language name="dot" version="5" kateversion="5.0" section="Scientific" extensions="*.dot" mimetype="text/x-dot" author="Postula Loïs (lois.postula@live.be)" priority="0">
|
||||
|
||||
<highlighting>
|
||||
|
||||
<list name="keywords">
|
||||
<item>digraph</item>
|
||||
<item>node</item>
|
||||
<item>edge</item>
|
||||
<item>subgraph</item>
|
||||
</list>
|
||||
|
||||
<list name="attributes">
|
||||
<!-- Graph attributes -->
|
||||
<item>center</item>
|
||||
<item>layers</item>
|
||||
<item>margin</item>
|
||||
<item>mclimit</item>
|
||||
<item>name</item>
|
||||
<item>nodesep</item>
|
||||
<item>nslimit</item>
|
||||
<item>ordering</item>
|
||||
<item>page</item>
|
||||
<item>pagedir</item>
|
||||
<item>rank</item>
|
||||
<item>rankdir</item>
|
||||
<item>ranksep</item>
|
||||
<item>ratio</item>
|
||||
<item>rotate</item>
|
||||
<item>size</item>
|
||||
<!-- Node attributes -->
|
||||
<item>distortion</item>
|
||||
<item>fillcolor</item>
|
||||
<item>fontcolor</item>
|
||||
<item>fontname</item>
|
||||
<item>fontsize</item>
|
||||
<item>height</item>
|
||||
<item>layer</item>
|
||||
<item>orientation</item>
|
||||
<item>peripheries</item>
|
||||
<item>regular</item>
|
||||
<item>shape</item>
|
||||
<item>shapefile</item>
|
||||
<item>sides</item>
|
||||
<item>skew</item>
|
||||
<item>width</item>
|
||||
<!-- Edge attributes -->
|
||||
<item>arrowhead</item>
|
||||
<item>arrowsize</item>
|
||||
<item>arrowtail</item>
|
||||
<item>constraint</item>
|
||||
<item>decorateP</item>
|
||||
<item>dir</item>
|
||||
<item>headclip</item>
|
||||
<item>headlabel</item>
|
||||
<item>labelangle</item>
|
||||
<item>labeldistance</item>
|
||||
<item>labelfontcolor</item>
|
||||
<item>labelfontname</item>
|
||||
<item>labelfontsize</item>
|
||||
<item>minlen</item>
|
||||
<item>port_label_distance</item>
|
||||
<item>samehead</item>
|
||||
<item>sametail</item>
|
||||
<item>tailclip</item>
|
||||
<item>taillabel</item>
|
||||
<item>weight</item>
|
||||
<!-- Shared attributes (graphs, nodes, edges) -->
|
||||
<item>color</item>
|
||||
<!-- Shared attributes (graphs and edges) -->
|
||||
<item>bgcolor</item>
|
||||
<item>label</item>
|
||||
<item>URL</item>
|
||||
<!-- Shared attributes (nodes and edges) -->
|
||||
<item>fontcolor</item>
|
||||
<item>fontname</item>
|
||||
<item>fontsize</item>
|
||||
<item>layer</item>
|
||||
<item>style</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<IncludeRules context="DetectAll"/>
|
||||
</context>
|
||||
|
||||
<!-- detector contexts -->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="DetectAll">
|
||||
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
||||
<keyword attribute="Attribute" context="#stay" String="attributes"/>
|
||||
<DetectChar attribute="String" context="String" char="""/>
|
||||
<AnyChar attribute="Symbol" context="#stay" String=";="/>
|
||||
<Detect2Chars attribute="Symbol" context="#stay" char="-" char1=">"/>
|
||||
<Float attribute="Number" context="#stay"/>
|
||||
<Int attribute="Number" context="#stay"/>
|
||||
<RegExpr attribute="Identifier" context="#stay" String="\b\w+\b"/>
|
||||
<IncludeRules context="DetectComments"/>
|
||||
<DetectChar attribute="Symbol" context="RegionCurly" char="{" beginRegion="curly"/>
|
||||
<DetectChar attribute="Symbol" context="RegionSquare" char="[" beginRegion="square"/>
|
||||
<DetectChar attribute="Symbol" context="RegionParen" char="(" beginRegion="paren"/>
|
||||
<AnyChar attribute="Error" context="#stay" String=")]}"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="DetectComments">
|
||||
<Detect2Chars attribute="Comment" context="CommentSL" char="/" char1="/"/>
|
||||
<Detect2Chars attribute="Comment" context="CommentML" char="/" char1="*" beginRegion="Comment"/>
|
||||
</context>
|
||||
|
||||
<!-- region contexts -->
|
||||
<context attribute="Comment" lineEndContext="#stay" name="RegionCurly">
|
||||
<DetectChar attribute="Symbol" context="#pop" char="}" endRegion="curly"/>
|
||||
<IncludeRules context="DetectAll"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="RegionSquare">
|
||||
<DetectChar attribute="Symbol" context="#pop" char="]" endRegion="square"/>
|
||||
<IncludeRules context="DetectAll"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="RegionParen">
|
||||
<DetectChar attribute="Symbol" context="#pop" char=")" endRegion="paren"/>
|
||||
<IncludeRules context="DetectAll"/>
|
||||
</context>
|
||||
|
||||
<!-- other contexts -->
|
||||
<context attribute="String" lineEndContext="#pop" name="String">
|
||||
<Detect2Chars attribute="String Char" context="#stay" char="\" char1="\"/>
|
||||
<Detect2Chars attribute="String Char" context="#stay" char="\" char1="""/>
|
||||
<DetectChar attribute="String" context="#pop" char="""/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#pop" name="CommentSL">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
<context attribute="Comment" lineEndContext="#stay" name="CommentML">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments"/>
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword"/>
|
||||
<itemData name="Attribute" defStyleNum="dsAttribute"/>
|
||||
<itemData name="Symbol" defStyleNum="dsOthers"/>
|
||||
<itemData name="Number" defStyleNum="dsDecVal"/>
|
||||
<itemData name="Identifier" defStyleNum="dsVariable"/>
|
||||
<itemData name="String" defStyleNum="dsString"/>
|
||||
<itemData name="String Char" defStyleNum="dsSpecialChar"/>
|
||||
<itemData name="Comment" defStyleNum="dsComment"/>
|
||||
<itemData name="Error" defStyleNum="dsError"/>
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
|
||||
<comments>
|
||||
<comment name="singleLine" start="//"/>
|
||||
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
|
||||
</comments>
|
||||
|
||||
<keywords casesensitive="1"/>
|
||||
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,393 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<!--
|
||||
This file is part of the KDE KSyntaxHighlighting framework.
|
||||
|
||||
Copyright 2016-2017 Ernst Maurer <ernst.maurer@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and distribute this software
|
||||
and its documentation for any purpose and without fee is hereby
|
||||
granted, provided that the above copyright notice appear in all
|
||||
copies and that both that the copyright notice and this
|
||||
permission notice and warranty disclaimer appear in supporting
|
||||
documentation, and that the name of the author not be used in
|
||||
advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
The author disclaim all warranties with regard to this
|
||||
software, including all implied warranties of merchantability
|
||||
and fitness. In no event shall the author be liable for any
|
||||
special, indirect or consequential damages or any damages
|
||||
whatsoever resulting from loss of use, data or profits, whether
|
||||
in an action of contract, negligence or other tortious action,
|
||||
arising out of or in connection with the use or performance of
|
||||
this software.
|
||||
-->
|
||||
<language name="Doxyfile"
|
||||
section="Configuration"
|
||||
extensions="Doxyfile;Doxyfile.*"
|
||||
mimetype=""
|
||||
version="6"
|
||||
kateversion="5.0"
|
||||
author="Ernst Maurer (ernst.maurer@gmail.com)"
|
||||
license="MIT">
|
||||
|
||||
<highlighting>
|
||||
<list name="keywords">
|
||||
<item>ABBREVIATE_BRIEF</item>
|
||||
<item>ALIASES</item>
|
||||
<item>ALLEXTERNALS</item>
|
||||
<item>ALLOW_UNICODE_NAMES</item>
|
||||
<item>ALPHABETICAL_INDEX</item>
|
||||
<item>ALWAYS_DETAILED_SEC</item>
|
||||
<item>AUTOLINK_SUPPORT</item>
|
||||
<item>BINARY_TOC</item>
|
||||
<item>BRIEF_MEMBER_DESC</item>
|
||||
<item>BUILTIN_STL_SUPPORT</item>
|
||||
<item>CALLER_GRAPH</item>
|
||||
<item>CALL_GRAPH</item>
|
||||
<item>CASE_SENSE_NAMES</item>
|
||||
<item>CHM_FILE</item>
|
||||
<item>CHM_INDEX_ENCODING</item>
|
||||
<item>CITE_BIB_FILES</item>
|
||||
<item>CLANG_ASSISTED_PARSING</item>
|
||||
<item>CLANG_OPTIONS</item>
|
||||
<item>CLASS_DIAGRAMS</item>
|
||||
<item>CLASS_GRAPH</item>
|
||||
<item>COLLABORATION_GRAPH</item>
|
||||
<item>COLS_IN_ALPHA_INDEX</item>
|
||||
<item>COMPACT_LATEX</item>
|
||||
<item>COMPACT_RTF</item>
|
||||
<item>CPP_CLI_SUPPORT</item>
|
||||
<item>CREATE_SUBDIRS</item>
|
||||
<item>CREATE_SUBDIRS_LEVEL</item>
|
||||
<item>DIAFILE_DIRS</item>
|
||||
<item>DIA_PATH</item>
|
||||
<item>DIRECTORY_GRAPH</item>
|
||||
<item>DIR_GRAPH_MAX_DEPTH</item>
|
||||
<item>DISABLE_INDEX</item>
|
||||
<item>DISTRIBUTE_GROUP_DOC</item>
|
||||
<item>DOCBOOK_OUTPUT</item>
|
||||
<item>DOCBOOK_PROGRAMLISTING</item>
|
||||
<item>DOCSET_BUNDLE_ID</item>
|
||||
<item>DOCSET_FEEDNAME</item>
|
||||
<item>DOCSET_FEEDURL</item>
|
||||
<item>DOCSET_PUBLISHER_ID</item>
|
||||
<item>DOCSET_PUBLISHER_NAME</item>
|
||||
<item>DOTFILE_DIRS</item>
|
||||
<item>DOT_CLEANUP</item>
|
||||
<item>DOT_COMMON_ATTR</item>
|
||||
<item>DOT_EDGE_ATTR</item>
|
||||
<item>DOT_FONTNAME</item>
|
||||
<item>DOT_FONTPATH</item>
|
||||
<item>DOT_FONTSIZE</item>
|
||||
<item>DOT_GRAPH_MAX_NODES</item>
|
||||
<item>DOT_IMAGE_FORMAT</item>
|
||||
<item>DOT_MULTI_TARGETS</item>
|
||||
<item>DOT_NODE_ATTR</item>
|
||||
<item>DOT_NUM_THREADS</item>
|
||||
<item>DOT_PATH</item>
|
||||
<item>DOT_TRANSPARENT</item>
|
||||
<item>DOT_UML_DETAILS</item>
|
||||
<item>DOT_WRAP_THRESHOLD</item>
|
||||
<item>DOXYFILE_ENCODING</item>
|
||||
<item>ECLIPSE_DOC_ID</item>
|
||||
<item>ENABLED_SECTIONS</item>
|
||||
<item>ENABLE_PREPROCESSING</item>
|
||||
<item>ENUM_VALUES_PER_LINE</item>
|
||||
<item>EXAMPLE_PATH</item>
|
||||
<item>EXAMPLE_PATTERNS</item>
|
||||
<item>EXAMPLE_RECURSIVE</item>
|
||||
<item>EXCLUDE</item>
|
||||
<item>EXCLUDE_PATTERNS</item>
|
||||
<item>EXCLUDE_SYMBOLS</item>
|
||||
<item>EXCLUDE_SYMLINKS</item>
|
||||
<item>EXPAND_AS_DEFINED</item>
|
||||
<item>EXPAND_ONLY_PREDEF</item>
|
||||
<item>EXTENSION_MAPPING</item>
|
||||
<item>EXTERNAL_GROUPS</item>
|
||||
<item>EXTERNAL_PAGES</item>
|
||||
<item>EXTERNAL_SEARCH</item>
|
||||
<item>EXTERNAL_SEARCH_ID</item>
|
||||
<item>EXTRACT_ALL</item>
|
||||
<item>EXTRACT_ANON_NSPACES</item>
|
||||
<item>EXTRACT_LOCAL_CLASSES</item>
|
||||
<item>EXTRACT_LOCAL_METHODS</item>
|
||||
<item>EXTRACT_PACKAGE</item>
|
||||
<item>EXTRACT_PRIVATE</item>
|
||||
<item>EXTRACT_PRIV_VIRTUAL</item>
|
||||
<item>EXTRACT_STATIC</item>
|
||||
<item>EXTRA_PACKAGES</item>
|
||||
<item>EXTRA_SEARCH_MAPPINGS</item>
|
||||
<item>EXT_LINKS_IN_WINDOW</item>
|
||||
<item>FILE_PATTERNS</item>
|
||||
<item>FILE_VERSION_FILTER</item>
|
||||
<item>FILTER_PATTERNS</item>
|
||||
<item>FILTER_SOURCE_FILES</item>
|
||||
<item>FILTER_SOURCE_PATTERNS</item>
|
||||
<item>FORCE_LOCAL_INCLUDES</item>
|
||||
<item>FORMULA_FONTSIZE</item>
|
||||
<item>FORMULA_MACROFILE</item>
|
||||
<item>FORMULA_TRANSPARENT</item>
|
||||
<item>FORTRAN_COMMENT_AFTER</item>
|
||||
<item>FULL_PATH_NAMES</item>
|
||||
<item>FULL_SIDEBAR</item>
|
||||
<item>GENERATE_AUTOGEN_DEF</item>
|
||||
<item>GENERATE_BUGLIST</item>
|
||||
<item>GENERATE_CHI</item>
|
||||
<item>GENERATE_DEPRECATEDLIST</item>
|
||||
<item>GENERATE_DOCBOOK</item>
|
||||
<item>GENERATE_DOCSET</item>
|
||||
<item>GENERATE_ECLIPSEHELP</item>
|
||||
<item>GENERATE_HTML</item>
|
||||
<item>GENERATE_HTMLHELP</item>
|
||||
<item>GENERATE_LATEX</item>
|
||||
<item>GENERATE_LEGEND</item>
|
||||
<item>GENERATE_MAN</item>
|
||||
<item>GENERATE_PERLMOD</item>
|
||||
<item>GENERATE_QHP</item>
|
||||
<item>GENERATE_RTF</item>
|
||||
<item>GENERATE_SQLITE3</item>
|
||||
<item>GENERATE_TAGFILE</item>
|
||||
<item>GENERATE_TESTLIST</item>
|
||||
<item>GENERATE_TODOLIST</item>
|
||||
<item>GENERATE_TREEVIEW</item>
|
||||
<item>GENERATE_XML</item>
|
||||
<item>GRAPHICAL_HIERARCHY</item>
|
||||
<item>GROUP_GRAPHS</item>
|
||||
<item>GROUP_NESTED_COMPOUNDS</item>
|
||||
<item>HAVE_DOT</item>
|
||||
<item>HHC_LOCATION</item>
|
||||
<item>HIDE_COMPOUND_REFERENCE</item>
|
||||
<item>HIDE_FRIEND_COMPOUNDS</item>
|
||||
<item>HIDE_IN_BODY_DOCS</item>
|
||||
<item>HIDE_SCOPE_NAMES</item>
|
||||
<item>HIDE_UNDOC_CLASSES</item>
|
||||
<item>HIDE_UNDOC_MEMBERS</item>
|
||||
<item>HIDE_UNDOC_RELATIONS</item>
|
||||
<item>HTML_CODE_FOLDING</item>
|
||||
<item>HTML_COLORSTYLE</item>
|
||||
<item>HTML_COLORSTYLE_GAMMA</item>
|
||||
<item>HTML_COLORSTYLE_HUE</item>
|
||||
<item>HTML_COLORSTYLE_SAT</item>
|
||||
<item>HTML_COPY_CLIPBOARD</item>
|
||||
<item>HTML_DYNAMIC_MENUS</item>
|
||||
<item>HTML_DYNAMIC_SECTIONS</item>
|
||||
<item>HTML_EXTRA_FILES</item>
|
||||
<item>HTML_EXTRA_STYLESHEET</item>
|
||||
<item>HTML_FILE_EXTENSION</item>
|
||||
<item>HTML_FOOTER</item>
|
||||
<item>HTML_FORMULA_FORMAT</item>
|
||||
<item>HTML_HEADER</item>
|
||||
<item>HTML_INDEX_NUM_ENTRIES</item>
|
||||
<item>HTML_OUTPUT</item>
|
||||
<item>HTML_PROJECT_COOKIE</item>
|
||||
<item>HTML_STYLESHEET</item>
|
||||
<item>HTML_TIMESTAMP</item>
|
||||
<item>IDL_PROPERTY_SUPPORT</item>
|
||||
<item>IGNORE_PREFIX</item>
|
||||
<item>IMAGE_PATH</item>
|
||||
<item>INCLUDED_BY_GRAPH</item>
|
||||
<item>INCLUDE_FILE_PATTERNS</item>
|
||||
<item>INCLUDE_GRAPH</item>
|
||||
<item>INCLUDE_PATH</item>
|
||||
<item>INHERIT_DOCS</item>
|
||||
<item>INLINE_GROUPED_CLASSES</item>
|
||||
<item>INLINE_INFO</item>
|
||||
<item>INLINE_INHERITED_MEMB</item>
|
||||
<item>INLINE_SIMPLE_STRUCTS</item>
|
||||
<item>INLINE_SOURCES</item>
|
||||
<item>INPUT</item>
|
||||
<item>INPUT_ENCODING</item>
|
||||
<item>INPUT_FILE_ENCODING</item>
|
||||
<item>INPUT_FILTER</item>
|
||||
<item>INTERACTIVE_SVG</item>
|
||||
<item>INTERNAL_DOCS</item>
|
||||
<item>JAVADOC_AUTOBRIEF</item>
|
||||
<item>JAVADOC_BANNER</item>
|
||||
<item>LATEX_BATCHMODE</item>
|
||||
<item>LATEX_BIB_STYLE</item>
|
||||
<item>LATEX_CMD_NAME</item>
|
||||
<item>LATEX_EMOJI_DIRECTORY</item>
|
||||
<item>LATEX_EXTRA_FILES</item>
|
||||
<item>LATEX_EXTRA_STYLESHEET</item>
|
||||
<item>LATEX_FOOTER</item>
|
||||
<item>LATEX_HEADER</item>
|
||||
<item>LATEX_HIDE_INDICES</item>
|
||||
<item>LATEX_MAKEINDEX_CMD</item>
|
||||
<item>LATEX_OUTPUT</item>
|
||||
<item>LATEX_SOURCE_CODE</item>
|
||||
<item>LATEX_TIMESTAMP</item>
|
||||
<item>LAYOUT_FILE</item>
|
||||
<item>LOOKUP_CACHE_SIZE</item>
|
||||
<item>MACRO_EXPANSION</item>
|
||||
<item>MAKEINDEX_CMD_NAME</item>
|
||||
<item>MAN_EXTENSION</item>
|
||||
<item>MAN_LINKS</item>
|
||||
<item>MAN_OUTPUT</item>
|
||||
<item>MAN_SUBDIR</item>
|
||||
<item>MARKDOWN_ID_STYLE</item>
|
||||
<item>MARKDOWN_SUPPORT</item>
|
||||
<item>MATHJAX_CODEFILE</item>
|
||||
<item>MATHJAX_EXTENSIONS</item>
|
||||
<item>MATHJAX_FORMAT</item>
|
||||
<item>MATHJAX_RELPATH</item>
|
||||
<item>MATHJAX_VERSION</item>
|
||||
<item>MAX_DOT_GRAPH_DEPTH</item>
|
||||
<item>MAX_INITIALIZER_LINES</item>
|
||||
<item>MSCFILE_DIRS</item>
|
||||
<item>MSCGEN_PATH</item>
|
||||
<item>MSCGEN_TOOL</item>
|
||||
<item>MULTILINE_CPP_IS_BRIEF</item>
|
||||
<item>NUM_PROC_THREADS</item>
|
||||
<item>OBFUSCATE_EMAILS</item>
|
||||
<item>OPTIMIZE_FOR_FORTRAN</item>
|
||||
<item>OPTIMIZE_OUTPUT_FOR_C</item>
|
||||
<item>OPTIMIZE_OUTPUT_JAVA</item>
|
||||
<item>OPTIMIZE_OUTPUT_SLICE</item>
|
||||
<item>OPTIMIZE_OUTPUT_VHDL</item>
|
||||
<item>OUTPUT_DIRECTORY</item>
|
||||
<item>OUTPUT_LANGUAGE</item>
|
||||
<item>PAPER_TYPE</item>
|
||||
<item>PDF_HYPERLINKS</item>
|
||||
<item>PERLMOD_LATEX</item>
|
||||
<item>PERLMOD_MAKEVAR_PREFIX</item>
|
||||
<item>PERLMOD_PRETTY</item>
|
||||
<item>PERL_PATH</item>
|
||||
<item>PLANTUML_CFG_FILE</item>
|
||||
<item>PLANTUML_INCLUDE_PATH</item>
|
||||
<item>PLANTUML_JAR_PATH</item>
|
||||
<item>PREDEFINED</item>
|
||||
<item>PROJECT_BRIEF</item>
|
||||
<item>PROJECT_ICON</item>
|
||||
<item>PROJECT_LOGO</item>
|
||||
<item>PROJECT_NAME</item>
|
||||
<item>PROJECT_NUMBER</item>
|
||||
<item>PYTHON_DOCSTRING</item>
|
||||
<item>QCH_FILE</item>
|
||||
<item>QHG_LOCATION</item>
|
||||
<item>QHP_CUST_FILTER_ATTRS</item>
|
||||
<item>QHP_CUST_FILTER_NAME</item>
|
||||
<item>QHP_NAMESPACE</item>
|
||||
<item>QHP_SECT_FILTER_ATTRS</item>
|
||||
<item>QHP_VIRTUAL_FOLDER</item>
|
||||
<item>QT_AUTOBRIEF</item>
|
||||
<item>QUIET</item>
|
||||
<item>RECURSIVE</item>
|
||||
<item>REFERENCED_BY_RELATION</item>
|
||||
<item>REFERENCES_LINK_SOURCE</item>
|
||||
<item>REFERENCES_RELATION</item>
|
||||
<item>REPEAT_BRIEF</item>
|
||||
<item>RESOLVE_UNNAMED_PARAMS</item>
|
||||
<item>RTF_EXTENSIONS_FILE</item>
|
||||
<item>RTF_HYPERLINKS</item>
|
||||
<item>RTF_OUTPUT</item>
|
||||
<item>RTF_SOURCE_CODE</item>
|
||||
<item>RTF_STYLESHEET_FILE</item>
|
||||
<item>SEARCHDATA_FILE</item>
|
||||
<item>SEARCHENGINE</item>
|
||||
<item>SEARCHENGINE_URL</item>
|
||||
<item>SEARCH_INCLUDES</item>
|
||||
<item>SEPARATE_MEMBER_PAGES</item>
|
||||
<item>SERVER_BASED_SEARCH</item>
|
||||
<item>SHORT_NAMES</item>
|
||||
<item>SHOW_FILES</item>
|
||||
<item>SHOW_GROUPED_MEMB_INC</item>
|
||||
<item>SHOW_HEADERFILE</item>
|
||||
<item>SHOW_INCLUDE_FILES</item>
|
||||
<item>SHOW_NAMESPACES</item>
|
||||
<item>SHOW_USED_FILES</item>
|
||||
<item>SIP_SUPPORT</item>
|
||||
<item>SITEMAP_URL</item>
|
||||
<item>SKIP_FUNCTION_MACROS</item>
|
||||
<item>SORT_BRIEF_DOCS</item>
|
||||
<item>SORT_BY_SCOPE_NAME</item>
|
||||
<item>SORT_GROUP_NAMES</item>
|
||||
<item>SORT_MEMBERS_CTORS_1ST</item>
|
||||
<item>SORT_MEMBER_DOCS</item>
|
||||
<item>SOURCE_BROWSER</item>
|
||||
<item>SOURCE_TOOLTIPS</item>
|
||||
<item>SQLITE3_RECREATE_DB</item>
|
||||
<item>STRICT_PROTO_MATCHING</item>
|
||||
<item>STRIP_CODE_COMMENTS</item>
|
||||
<item>STRIP_FROM_INC_PATH</item>
|
||||
<item>STRIP_FROM_PATH</item>
|
||||
<item>SUBGROUPING</item>
|
||||
<item>TAB_SIZE</item>
|
||||
<item>TAGFILES</item>
|
||||
<item>TCL_SUBST</item>
|
||||
<item>TEMPLATE_RELATIONS</item>
|
||||
<item>TIMESTAMP</item>
|
||||
<item>TOC_EXPAND</item>
|
||||
<item>TOC_INCLUDE_HEADINGS</item>
|
||||
<item>TREEVIEW_WIDTH</item>
|
||||
<item>TYPEDEF_HIDES_STRUCT</item>
|
||||
<item>UML_LIMIT_NUM_FIELDS</item>
|
||||
<item>UML_LOOK</item>
|
||||
<item>USE_HTAGS</item>
|
||||
<item>USE_MATHJAX</item>
|
||||
<item>USE_MDFILE_AS_MAINPAGE</item>
|
||||
<item>USE_PDFLATEX</item>
|
||||
<item>VERBATIM_HEADERS</item>
|
||||
<item>WARNINGS</item>
|
||||
<item>WARN_AS_ERROR</item>
|
||||
<item>WARN_FORMAT</item>
|
||||
<item>WARN_IF_DOC_ERROR</item>
|
||||
<item>WARN_IF_INCOMPLETE_DOC</item>
|
||||
<item>WARN_IF_UNDOCUMENTED</item>
|
||||
<item>WARN_IF_UNDOC_ENUM_VAL</item>
|
||||
<item>WARN_LINE_FORMAT</item>
|
||||
<item>WARN_LOGFILE</item>
|
||||
<item>WARN_NO_PARAMDOC</item>
|
||||
<item>XML_NS_MEMB_FILE_SCOPE</item>
|
||||
<item>XML_OUTPUT</item>
|
||||
<item>XML_PROGRAMLISTING</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="doxy" attribute="Error" lineEndContext="#stay">
|
||||
<keyword attribute="Keyword" String="keywords" context="Assignment"/>
|
||||
<DetectChar char="#" context="Comment" firstNonSpace="true" />
|
||||
</context>
|
||||
|
||||
<context name="Assignment" attribute="Normal Text" lineEndContext="#pop">
|
||||
<DetectChar attribute="Assignment" context="Value" char="=" />
|
||||
</context>
|
||||
<context name="Value" attribute="UntypedValue" lineEndContext="#pop" >
|
||||
<WordDetect attribute="ValueYes" insensitive="true" String="YES" />
|
||||
<WordDetect attribute="ValueNo" insensitive="true" String="NO" />
|
||||
<RegExpr attribute="Parameter" String="@.*@" />
|
||||
<DetectChar char="#" context="Comment" />
|
||||
<LineContinue />
|
||||
</context>
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#pop">
|
||||
<IncludeRules context="##Comments" />
|
||||
<keyword attribute="KeywordInComment" String="keywords" context="#stay"/>
|
||||
<DetectSpaces />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0" />
|
||||
<itemData name="Error" defStyleNum="dsError" spellChecking="0" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Assignment" defStyleNum="dsOperator" spellChecking="0" />
|
||||
<itemData name="ValueYes" defStyleNum="dsOthers" spellChecking="0" />
|
||||
<itemData name="ValueNo" defStyleNum="dsString" spellChecking="0" />
|
||||
<itemData name="UntypedValue" defStyleNum="dsDataType" spellChecking="0" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0" />
|
||||
<itemData name="KeywordInComment" defStyleNum="dsCommentVar" spellChecking="0" />
|
||||
<itemData name="Parameter" defStyleNum="dsOthers" spellChecking="0" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="#" />
|
||||
</comments>
|
||||
<keywords casesensitive="0" />
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
@@ -0,0 +1,629 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language
|
||||
[
|
||||
<!ENTITY wordsep "(?:[][,?;()]|\.$|\.?\s|$)"> <!-- things that end a TagWord -->
|
||||
<!ENTITY sl_word ".*?(?=&wordsep;)">
|
||||
<!ENTITY ml_word ".*?(?=&wordsep;|\*/)">
|
||||
]>
|
||||
<language name="Doxygen"
|
||||
version="15"
|
||||
kateversion="5.0"
|
||||
section="Markup"
|
||||
extensions="*.dox;*.doxygen"
|
||||
mimetype="text/x-doxygen"
|
||||
author="Dominik Haumann (dhaumann@kde.org)"
|
||||
license="MIT"
|
||||
priority="9">
|
||||
<highlighting>
|
||||
<!-- NOTE: all tags may begin with a \ or @ char
|
||||
so if you add/change tags you have to do it twice -->
|
||||
<!-- NOTE: Tags @code/@endcode, @dot/@enddot, @vermatim/@endverbatim, @msc/@endmsc, @f[/@f]
|
||||
do not present in keywords due separate handle rules...
|
||||
-->
|
||||
<list name="TagOnly">
|
||||
<item>\arg</item> <item>@arg</item>
|
||||
<item>\author</item> <item>@author</item>
|
||||
<item>\authors</item> <item>@authors</item>
|
||||
<item>\brief</item> <item>@brief</item>
|
||||
<item>\callgraph</item> <item>@callgraph</item>
|
||||
<item>\callergraph</item> <item>@callergraph</item>
|
||||
<item>\date</item> <item>@date</item>
|
||||
<item>\deprecated</item> <item>@deprecated</item>
|
||||
<item>\details</item> <item>@details</item>
|
||||
<item>\docbookonly</item> <item>@docbookonly</item>
|
||||
<item>\else</item> <item>@else</item>
|
||||
<item>\endcond</item> <item>@endcond</item>
|
||||
<item>\enddocbookonly</item> <item>@enddocbookonly</item>
|
||||
<item>\endhtmlonly</item> <item>@endhtmlonly</item>
|
||||
<item>\endif</item> <item>@endif</item>
|
||||
<item>\endinternal</item> <item>@endinternal</item>
|
||||
<item>\endlatexonly</item> <item>@endlatexonly</item>
|
||||
<item>\endlink</item> <item>@endlink</item>
|
||||
<item>\endmanonly</item> <item>@endmanonly</item>
|
||||
<item>\endparblock</item> <item>@endparblock</item>
|
||||
<item>\endrtfonly</item> <item>@endrtfonly</item>
|
||||
<item>\endsecreflist</item> <item>@endsecreflist</item>
|
||||
<item>\endxmlonly</item> <item>@endxmlonly</item>
|
||||
<item>\hideinitializer</item> <item>@hideinitializer</item>
|
||||
<item>\htmlonly</item> <item>@htmlonly</item>
|
||||
<!-- TODO @internal is a candidate to be handled separately, cuz may introduce folding region -->
|
||||
<item>\internal</item> <item>@internal</item>
|
||||
<item>\invariant</item> <item>@invariant</item>
|
||||
<item>\latexonly</item> <item>@latexonly</item>
|
||||
<item>\li</item> <item>@li</item>
|
||||
<item>\manonly</item> <item>@manonly</item>
|
||||
<item>\n</item> <item>@n</item>
|
||||
<item>\nosubgrouping</item> <item>@nosubgrouping</item>
|
||||
<item>\only</item> <item>@only</item>
|
||||
<item>\parblock</item> <item>@parblock</item>
|
||||
<item>\post</item> <item>@post</item>
|
||||
<item>\pre</item> <item>@pre</item>
|
||||
<item>\private</item> <item>@pivate</item>
|
||||
<item>\privatesection</item> <item>@pivatesection</item>
|
||||
<item>\protected</item> <item>@protected</item>
|
||||
<item>\protectedsection</item> <item>@protectedsection</item>
|
||||
<item>\public</item> <item>@public</item>
|
||||
<item>\publicsection</item> <item>@publicsection</item>
|
||||
<item>\pure</item> <item>@pure</item>
|
||||
<item>\remark</item> <item>@remark</item>
|
||||
<item>\remarks</item> <item>@remarks</item>
|
||||
<item>\return</item> <item>@return</item>
|
||||
<item>\returns</item> <item>@returns</item>
|
||||
<item>\result</item> <item>@result</item>
|
||||
<item>\rtfonly</item> <item>@rtfonly</item>
|
||||
<item>\sa</item> <item>@sa</item>
|
||||
<item>\secreflist</item> <item>@secreflist</item>
|
||||
<item>\see</item> <item>@see</item>
|
||||
<item>\short</item> <item>@short</item>
|
||||
<item>\showinitializer</item> <item>@showinitializer</item>
|
||||
<item>\since</item> <item>@since</item>
|
||||
<item>\static</item> <item>@static</item>
|
||||
<item>\tableofcontents</item> <item>@tableofcontents</item>
|
||||
<item>\test</item> <item>@test</item>
|
||||
<item>\version</item> <item>@version</item>
|
||||
<item>\xmlonly</item> <item>@xmlonly</item>
|
||||
</list>
|
||||
|
||||
<list name="TagWord">
|
||||
<item>\a</item> <item>@a</item>
|
||||
<item>\anchor</item> <item>@anchor</item>
|
||||
<item>\b</item> <item>@b</item>
|
||||
<item>\c</item> <item>@c</item>
|
||||
<item>\cite</item> <item>@cite</item>
|
||||
<item>\cond</item> <item>@cond</item>
|
||||
<item>\copybrief</item> <item>@copybrief</item>
|
||||
<item>\copydetails</item> <item>@copydetails</item>
|
||||
<item>\copydoc</item> <item>@copydoc</item>
|
||||
<item>\def</item> <item>@def</item>
|
||||
<item>\dir</item> <item>@dir</item>
|
||||
<item>\dontinclude</item> <item>@dontinclude</item>
|
||||
<item>\e</item> <item>@e</item>
|
||||
<item>\elseif</item> <item>@elseif</item>
|
||||
<item>\em</item> <item>@em</item>
|
||||
<item>\enum</item> <item>@enum</item>
|
||||
<item>\example</item> <item>@example</item>
|
||||
<item>\exception</item> <item>@exception</item>
|
||||
<item>\exceptions</item> <item>@exceptions</item>
|
||||
<item>\extends</item> <item>@extends</item>
|
||||
<item>\file</item> <item>@file</item>
|
||||
<item>\htmlinclude</item> <item>@htmlinclude</item>
|
||||
<item>\idlexcept</item> <item>@idlexcept</item>
|
||||
<item>\if</item> <item>@if</item>
|
||||
<item>\ifnot</item> <item>@ifnot</item>
|
||||
<item>\implements</item> <item>@implements</item>
|
||||
<item>\include</item> <item>@include</item>
|
||||
<item>\includelineno</item> <item>@includelineno</item>
|
||||
<item>\latexinclude</item> <item>@latexinclude</item>
|
||||
<item>\link</item> <item>@link</item>
|
||||
<item>\memberof</item> <item>@memberof</item>
|
||||
<item>\namespace</item> <item>@namespace</item>
|
||||
<item>\p</item> <item>@p</item>
|
||||
<item>\package</item> <item>@package</item>
|
||||
<item>\property</item> <item>@property</item>
|
||||
<item>\relatedalso</item> <item>@relatedalso</item>
|
||||
<item>\relatesalso</item> <item>@relatesalso</item>
|
||||
<item>\related</item> <item>@related</item>
|
||||
<item>\relates</item> <item>@relates</item>
|
||||
<item>\retval</item> <item>@retval</item>
|
||||
<item>\throw</item> <item>@throw</item>
|
||||
<item>\throws</item> <item>@throws</item>
|
||||
<item>\verbinclude</item> <item>@verbinclude</item>
|
||||
<item>\version</item> <item>@version</item>
|
||||
<!-- TODO Introduce separate context for @xrefitem? -->
|
||||
<item>\xrefitem</item> <item>@xrefitem</item>
|
||||
</list>
|
||||
<list name="TagParam">
|
||||
<item>\param</item> <item>@param</item>
|
||||
<!-- TODO @tparam has no optional direction actually! -->
|
||||
<item>\tparam</item> <item>@tparam</item>
|
||||
</list>
|
||||
<!-- TODO Better (separate?) highlighting for @image required -->
|
||||
<list name="TagWordWord">
|
||||
<item>\image</item> <item>@image</item>
|
||||
</list>
|
||||
<!-- TODO @union, @struct, @protocol, @interface, @class, @category
|
||||
actually takes 3 params, 1 mandatory and 2 optional
|
||||
-->
|
||||
<!-- TODO @headerfile actually takes 2 params, where last one is optional -->
|
||||
<list name="TagWordString">
|
||||
<item>\addtogroup</item> <item>@addtogroup</item>
|
||||
<item>\category</item> <item>@category</item>
|
||||
<item>\class</item> <item>@class</item>
|
||||
<item>\diafile</item> <item>@diafile</item>
|
||||
<item>\dotfile</item> <item>@dotfile</item>
|
||||
<item>\defgroup</item> <item>@defgroup</item>
|
||||
<item>\interface</item> <item>@interface</item>
|
||||
<item>\headerfile</item> <item>@headerfile</item>
|
||||
<item>\mscfile</item> <item>@mscfile</item>
|
||||
<item>\page</item> <item>@page</item>
|
||||
<item>\paragraph</item> <item>@paragraph</item>
|
||||
<item>\protocol</item> <item>@prtocol</item>
|
||||
<item>\ref</item> <item>@ref</item>
|
||||
<item>\section</item> <item>@section</item>
|
||||
<item>\snippet</item> <item>@snippet</item>
|
||||
<item>\struct</item> <item>@struct</item>
|
||||
<item>\subpage</item> <item>@subpage</item>
|
||||
<item>\subsection</item> <item>@subsection</item>
|
||||
<item>\subsubsection</item> <item>@subsubsection</item>
|
||||
<item>\union</item> <item>@union</item>
|
||||
<item>\weakgroup</item> <item>@weakgroup</item>
|
||||
</list>
|
||||
<list name="TagString">
|
||||
<item>\addindex</item> <item>@addindex</item>
|
||||
<item>\copyright</item> <item>@copyright</item>
|
||||
<item>\fn</item> <item>@fn</item>
|
||||
<item>\ingroup</item> <item>@ingroup</item>
|
||||
<item>\line</item> <item>@line</item>
|
||||
<item>\mainpage</item> <item>@mainpage</item>
|
||||
<item>\name</item> <item>@name</item>
|
||||
<item>\overload</item> <item>@overload</item>
|
||||
<item>\par</item> <item>@par</item>
|
||||
<item>\skip</item> <item>@skip</item>
|
||||
<item>\skipline</item> <item>@skipline</item>
|
||||
<item>\typedef</item> <item>@typedef</item>
|
||||
<item>\until</item> <item>@until</item>
|
||||
<item>\var</item> <item>@var</item>
|
||||
<item>\vhdlflow</item> <item>@vhdlflow</item>
|
||||
</list>
|
||||
<list name="TagEnd">
|
||||
<item>\endcode</item> <item>@endcode</item>
|
||||
<item>\endverbatim</item> <item>@endverbatim</item>
|
||||
<item>\endmsc</item> <item>@endmsc</item>
|
||||
<item>\enddot</item> <item>@enddot</item>
|
||||
</list>
|
||||
<list name="Note">
|
||||
<item>\note</item> <item>@note</item>
|
||||
</list>
|
||||
<list name="Warning">
|
||||
<item>\warning</item> <item>@warning</item>
|
||||
</list>
|
||||
<list name="Attention">
|
||||
<item>\attention</item> <item>@attention</item>
|
||||
<item>\bug</item> <item>@bug</item>
|
||||
</list>
|
||||
<list name="Todo">
|
||||
<item>\todo</item> <item>@todo</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<!--
|
||||
Different types of recognized command formats:
|
||||
(w/ params specified according doxygen manual (http://www.stack.nl/~dimitri/doxygen/commands.html))
|
||||
|
||||
@tag : TagOnly
|
||||
@tag <word> : TagWord
|
||||
@tag (rest_of_line) : TagString
|
||||
@tag {paragraph} : TagOnly
|
||||
@tag <word> <word> : TagWordWord
|
||||
@tag <word> (rest_of_line) : TagWordString
|
||||
|
||||
TODO Not all commands are handled properly nowadays :( Need few more contexts...
|
||||
-->
|
||||
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
||||
<RegExpr attribute="Comment" context="LineComment" String="//(?:!|(?:/(?=[^/]|$)))<?" />
|
||||
<RegExpr attribute="Comment" context="BlockComment" String="/\*(?:\*[^*/]|!|[*!]<|\*$)" beginRegion="BlockComment" />
|
||||
<RegExpr attribute="Region" context="#stay" String="//\s*@\{\s*$" beginRegion="MemberGroup" />
|
||||
<RegExpr attribute="Region" context="#stay" String="//\s*@\}\s*$" endRegion="MemberGroup" />
|
||||
<RegExpr attribute="Region" context="#stay" String="/\*\s*@\{\s*\*/" beginRegion="MemberGroup" />
|
||||
<RegExpr attribute="Region" context="#stay" String="/\*\s*@\}\s*\*/" endRegion="MemberGroup" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="LineComment">
|
||||
<LineContinue attribute="Comment" context="#stay" />
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
<AnyChar attribute="Comment" context="SL_StartTag" String="\@" lookAhead="true" />
|
||||
<DetectChar attribute="Comment" context="SL_StartHTMLTag" char="<" lookAhead="true" />
|
||||
<DetectChar attribute="Comment" context="Entities" char="&" lookAhead="true" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#stay" name="BlockComment">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
<AnyChar attribute="Comment" context="ML_StartTag" String="\@" lookAhead="true" />
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<DetectChar attribute="Comment" context="ML_StartHTMLTag" char="<" lookAhead="true" />
|
||||
<DetectChar attribute="Comment" context="Entities" char="&" lookAhead="true" />
|
||||
</context>
|
||||
|
||||
<!-- NOTE: all contexts beginning with ML_ are for multiline comments
|
||||
The following contexts contain a Detect2Chars that looks for a */ sequence
|
||||
to end multiline comments. Singleline comments do not have this limitation -
|
||||
that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed.
|
||||
<IncludeRules context="acontext"> could be used instead but it would make context switching
|
||||
much more complex and very hard to understand! (But use IncludeRules where the rules don't
|
||||
refer to another SL_*/ML_* context, to help maintainability.)
|
||||
-->
|
||||
<context attribute="Comment" lineEndContext="#pop" name="ML_StartTag">
|
||||
<keyword attribute="Tags" context="#pop!ML_TagWord" String="TagWord" />
|
||||
<keyword attribute="Tags" context="#pop!ML_TagParam" String="TagParam" />
|
||||
<keyword attribute="Tags" context="#pop!ML_TagWordWord" String="TagWordWord" />
|
||||
<keyword attribute="Tags" context="#pop!ML_TagString" String="TagString" />
|
||||
<keyword attribute="Tags" context="#pop!ML_TagWordString" String="TagWordString" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Code" String="\code" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Code" String="@code" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Verbatim" String="\verbatim" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Verbatim" String="@verbatim" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Formula" String="\f[" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Formula" String="@f[" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!ML_FormulaShort" String="\f$" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!ML_FormulaShort" String="@f$" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!ML_FormulaEnv" String="\f{" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!ML_FormulaEnv" String="@f{" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Msc" String="\msc" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Msc" String="@msc" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Dot" String="\dot" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!ML_Dot" String="@dot" beginRegion="VerbatimBlock" />
|
||||
<IncludeRules context="Inc_OtherTag" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="ML_StartHTMLTag">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="<" char1="<" />
|
||||
<RegExpr attribute="HTML Tag" context="#pop!ML_htmltag" String="<\/?[-\w0-9._:@]+" />
|
||||
<StringDetect attribute="HTML Comment" context="#pop!ML_htmlcomment" String="<!--" />
|
||||
<DetectChar attribute="Comment" context="#pop" char="<" />
|
||||
</context>
|
||||
|
||||
<!-- tag contexts -->
|
||||
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWord">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<keyword attribute="Tags" context="#pop!ML_TagWord" String="TagWord" />
|
||||
<IncludeRules context="ML_Inc_Word" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="ML_TagParam">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[in]" />
|
||||
<StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[out]" />
|
||||
<StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[in,out]" />
|
||||
<IncludeRules context="ML_Inc_Word" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<RegExpr attribute="Word" context="#pop!ML_TagWord" String="&ml_word;" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="ML_TagString">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="<!--" />
|
||||
<Detect2Chars attribute="Comment" context="#stay" char="<" char1="<" />
|
||||
<RegExpr attribute="HTML Tag" context="ML_htmltag" String="<\/?[-\w0-9._:@]+" />
|
||||
<RegExpr attribute="Description" context="#stay" String="[<*]?[^<*\s]+" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<IncludeRules context="ML_Inc_Word" />
|
||||
</context>
|
||||
|
||||
<context name="ML_Inc_Word" attribute="Word" lineEndContext="#pop">
|
||||
<RegExpr attribute="Word" context="#pop" String="&ml_word;" />
|
||||
</context>
|
||||
|
||||
|
||||
<!-- html contexts -->
|
||||
<context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1=">" />
|
||||
<DetectChar attribute="HTML Tag" context="#pop" char=">" />
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Identifier" context="ML_identifiers" char="=" />
|
||||
</context>
|
||||
<context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
<StringDetect attribute="HTML Comment" context="#pop" String="-->" />
|
||||
</context>
|
||||
<context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<DetectChar attribute="Types" context="ML_types1" char="'" />
|
||||
<DetectChar attribute="Types" context="ML_types2" char=""" />
|
||||
</context>
|
||||
<context name="ML_types1" attribute="Types" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<DetectChar attribute="Types" context="#pop#pop" char="'" />
|
||||
</context>
|
||||
<context name="ML_types2" attribute="Types" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Comment" context="#pop#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
|
||||
<DetectChar attribute="Types" context="#pop#pop" char=""" />
|
||||
</context>
|
||||
|
||||
<context name="ML_FindNextLine" attribute="Comment" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop!ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<Detect2Chars attribute="Comment" context="ML_VerbatimPrefix" char="*" char1="*" lookAhead="true" />
|
||||
<DetectChar attribute="Comment" context="#pop" char="*" />
|
||||
</context>
|
||||
<context name="ML_VerbatimPrefix" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectChar attribute="Comment" context="#pop" char="*" />
|
||||
</context>
|
||||
|
||||
<context name="ML_End_BlockComment" attribute="Comment" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Error" context="#pop#pop#pop" char="*" char1="/" endRegion="BlockComment"/>
|
||||
</context>
|
||||
|
||||
<context name="ML_Code" attribute="Code" lineEndContext="ML_FindNextLine">
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<WordDetect attribute="Tags" context="#pop" String="\endcode" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@endcode" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="ML_Verbatim" attribute="Verbatim" lineEndContext="ML_FindNextLine">
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<WordDetect attribute="Tags" context="#pop" String="\endverbatim" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@endverbatim" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="ML_Formula" attribute="Formulas" lineEndContext="ML_FindNextLine">
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<StringDetect attribute="Tags" context="#pop" String="\f]" endRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop" String="@f]" endRegion="VerbatimBlock" />
|
||||
<!-- TODO: How to force LaTeX math context here?? -->
|
||||
<!-- <IncludeRules context="##LaTeX" /> -->
|
||||
</context>
|
||||
|
||||
<context name="ML_FormulaShort" attribute="Formulas" lineEndContext="ML_FindNextLine">
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<StringDetect attribute="Tags" context="#pop" String="\f$" endRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop" String="@f$" endRegion="VerbatimBlock" />
|
||||
<!-- TODO: How to force LaTeX math context here?? -->
|
||||
<!-- <IncludeRules context="##LaTeX" /> -->
|
||||
</context>
|
||||
|
||||
<context name="ML_FormulaEnv" attribute="Word" lineEndContext="ML_FindNextLine">
|
||||
<DetectChar attribute="Tags" context="#pop!ML_FormulaEnvStart" char="}" />
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
</context>
|
||||
|
||||
<context name="ML_FormulaEnvStart" attribute="Formulas" lineEndContext="ML_FindNextLine" fallthrough="true" fallthroughContext="#pop!ML_FormulaEnvFormula">
|
||||
<DetectSpaces attribute="Comment" />
|
||||
<DetectChar attribute="Tags" context="#pop!ML_FormulaEnvFormula" char="{" />
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
</context>
|
||||
|
||||
<context name="ML_FormulaEnvFormula" attribute="Formulas" lineEndContext="ML_FindNextLine">
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<StringDetect attribute="Tags" context="#pop" String="\f}" endRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop" String="@f}" endRegion="VerbatimBlock" />
|
||||
<!-- TODO: How to force LaTeX math context here?? -->
|
||||
<!-- <IncludeRules context="##LaTeX" /> -->
|
||||
</context>
|
||||
|
||||
<context name="ML_Msc" attribute="Message Sequence Chart" lineEndContext="ML_FindNextLine">
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<WordDetect attribute="Tags" context="#pop" String="\endmsc" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@endmsc" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="ML_Dot" attribute="Dot Graph" lineEndContext="ML_FindNextLine">
|
||||
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
|
||||
<WordDetect attribute="Tags" context="#pop" String="\enddot" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@enddot" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
|
||||
<context attribute="Comment" lineEndContext="#pop" name="SL_StartTag">
|
||||
<keyword attribute="Tags" context="#pop!SL_TagWord" String="TagWord" />
|
||||
<keyword attribute="Tags" context="#pop!SL_TagParam" String="TagParam" />
|
||||
<keyword attribute="Tags" context="#pop!SL_TagWordWord" String="TagWordWord" />
|
||||
<keyword attribute="Tags" context="#pop!SL_TagString" String="TagString" />
|
||||
<keyword attribute="Tags" context="#pop!SL_TagWordString" String="TagWordString" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Code" String="\code" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Code" String="@code" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Verbatim" String="\verbatim" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Verbatim" String="@verbatim" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Formula" String="\f[" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Formula" String="@f[" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!SL_FormulaShort" String="\f$" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!SL_FormulaShort" String="@f$" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!SL_FormulaEnv" String="\f{" beginRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop!SL_FormulaEnv" String="@f{" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Msc" String="\msc" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Msc" String="@msc" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Dot" String="\dot" beginRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop!SL_Dot" String="@dot" beginRegion="VerbatimBlock" />
|
||||
<IncludeRules context="Inc_OtherTag" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="SL_StartHTMLTag">
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="<" char1="<" />
|
||||
<RegExpr attribute="HTML Tag" context="#pop!SL_htmltag" String="<\/?[-\w0-9._:@]+" />
|
||||
<StringDetect attribute="HTML Comment" context="#pop!SL_htmlcomment" String="<!--" />
|
||||
<DetectChar attribute="Comment" context="#pop" char="<" />
|
||||
</context>
|
||||
|
||||
<!-- tag contexts -->
|
||||
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWord">
|
||||
<DetectSpaces />
|
||||
<keyword attribute="Tags" context="#pop!SL_TagWord" String="TagWord" />
|
||||
<IncludeRules context="SL_Inc_Word" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="SL_TagParam">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[in]" />
|
||||
<StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[out]" />
|
||||
<StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[in,out]" />
|
||||
<IncludeRules context="SL_Inc_Word" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWordWord">
|
||||
<DetectSpaces />
|
||||
<RegExpr attribute="Word" context="#pop!SL_TagWord" String="&sl_word;" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="SL_TagString">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="<!--" />
|
||||
<Detect2Chars attribute="Comment" context="#stay" char="<" char1="<" />
|
||||
<RegExpr attribute="HTML Tag" context="SL_htmltag" String="<\/?[-\w0-9._:@]+" />
|
||||
<RegExpr attribute="Description" context="#stay" String="<?[^<\s]+" />
|
||||
</context>
|
||||
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="SL_Inc_Word" />
|
||||
</context>
|
||||
<context name="SL_Inc_Word" attribute="Word" lineEndContext="#pop">
|
||||
<RegExpr attribute="Word" context="#pop" String="&sl_word;" />
|
||||
</context>
|
||||
|
||||
<!-- html contexts -->
|
||||
<context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop">
|
||||
<Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1=">" />
|
||||
<DetectChar attribute="HTML Tag" context="#pop" char=">" />
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Identifier" context="SL_identifiers" char="=" />
|
||||
</context>
|
||||
<context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
<StringDetect attribute="HTML Comment" context="#pop" String="-->" />
|
||||
</context>
|
||||
<context name="SL_identifiers" attribute="Identifier" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="Types" context="SL_types1" char="'" />
|
||||
<DetectChar attribute="Types" context="SL_types2" char=""" />
|
||||
</context>
|
||||
<context name="SL_types1" attribute="Types" lineEndContext="#pop">
|
||||
<DetectChar attribute="Types" context="#pop#pop" char="'" />
|
||||
</context>
|
||||
<context name="SL_types2" attribute="Types" lineEndContext="#pop">
|
||||
<DetectChar attribute="Types" context="#pop#pop" char=""" />
|
||||
</context>
|
||||
|
||||
<context name="SL_FindNextLine" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Comment" context="#pop" String="///" />
|
||||
<StringDetect attribute="Comment" context="#pop" String="//!" />
|
||||
<RegExpr attribute="Comment" context="#pop#pop#pop" String="." lookAhead="true" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="SL_Code" attribute="Code" lineEndContext="SL_FindNextLine">
|
||||
<WordDetect attribute="Tags" context="#pop" String="\endcode" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@endcode" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="SL_Verbatim" attribute="Verbatim" lineEndContext="SL_FindNextLine">
|
||||
<WordDetect attribute="Tags" context="#pop" String="\endverbatim" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@endverbatim" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="SL_Formula" attribute="Formulas" lineEndContext="SL_FindNextLine">
|
||||
<StringDetect attribute="Tags" context="#pop" String="\f]" endRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop" String="@f]" endRegion="VerbatimBlock" />
|
||||
<!-- TODO: How to force LaTeX math context here?? -->
|
||||
<!-- <IncludeRules context="##LaTeX" /> -->
|
||||
</context>
|
||||
|
||||
<context name="SL_FormulaShort" attribute="Formulas" lineEndContext="SL_FindNextLine">
|
||||
<StringDetect attribute="Tags" context="#pop" String="\f$" endRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop" String="@f$" endRegion="VerbatimBlock" />
|
||||
<!-- TODO: How to force LaTeX math context here?? -->
|
||||
<!-- <IncludeRules context="##LaTeX" /> -->
|
||||
</context>
|
||||
|
||||
<context name="SL_FormulaEnv" attribute="Word" lineEndContext="SL_FindNextLine">
|
||||
<DetectChar attribute="Tags" context="#pop!SL_FormulaEnvStart" char="}" />
|
||||
</context>
|
||||
|
||||
<context name="SL_FormulaEnvStart" attribute="Formulas" lineEndContext="SL_FindNextLine" fallthrough="true" fallthroughContext="#pop!SL_FormulaEnvFormula">
|
||||
<DetectSpaces attribute="Comment" />
|
||||
<DetectChar attribute="Tags" context="#pop!SL_FormulaEnvFormula" char="{" />
|
||||
</context>
|
||||
|
||||
<context name="SL_FormulaEnvFormula" attribute="Formulas" lineEndContext="SL_FindNextLine">
|
||||
<StringDetect attribute="Tags" context="#pop" String="\f}" endRegion="VerbatimBlock" />
|
||||
<StringDetect attribute="Tags" context="#pop" String="@f}" endRegion="VerbatimBlock" />
|
||||
<!-- TODO: How to force LaTeX math context here?? -->
|
||||
<!-- <IncludeRules context="##LaTeX" /> -->
|
||||
</context>
|
||||
|
||||
<context name="SL_Msc" attribute="Message Sequence Chart" lineEndContext="SL_FindNextLine">
|
||||
<WordDetect attribute="Tags" context="#pop" String="\endmsc" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@endmsc" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="SL_Dot" attribute="Dot Graph" lineEndContext="SL_FindNextLine">
|
||||
<WordDetect attribute="Tags" context="#pop" String="\enddot" endRegion="VerbatimBlock" />
|
||||
<WordDetect attribute="Tags" context="#pop" String="@enddot" endRegion="VerbatimBlock" />
|
||||
</context>
|
||||
|
||||
<context name="Entities" attribute="Word" lineEndContext="#stay">
|
||||
<RegExpr attribute="Entities" context="#pop" String="&[A-Za-z]+;" />
|
||||
<DetectChar attribute="Comment" context="#pop" char="&" />
|
||||
</context>
|
||||
|
||||
<context name="Inc_OtherTag" attribute="Comment" lineEndContext="#pop">
|
||||
<keyword attribute="Note" context="#pop" String="Note" />
|
||||
<keyword attribute="Warning" context="#pop" String="Warning" />
|
||||
<keyword attribute="Attention" context="#pop" String="Attention" />
|
||||
<keyword attribute="Todo" context="#pop" String="Todo" />
|
||||
<keyword attribute="Tags" context="#pop" String="TagOnly" />
|
||||
<Detect2Chars attribute="Region" context="#pop" char="@" char1="{" beginRegion="Group" />
|
||||
<Detect2Chars attribute="Region" context="#pop" char="@" char1="}" endRegion="Group" />
|
||||
<Detect2Chars attribute="Tags" context="#pop!LanguageId" char="\" char1="~" />
|
||||
<Detect2Chars attribute="Tags" context="#pop!LanguageId" char="@" char1="~" />
|
||||
<keyword attribute="Error" context="#pop" String="TagEnd" />
|
||||
<RegExpr attribute="Error" context="#pop" String="[@\\]f[]}]" />
|
||||
<RegExpr attribute="Escape sequence" context="#pop" String="[@\\](?:[#$%&<>"@\\.~=|]|::|---?)" />
|
||||
<RegExpr attribute="Custom Tags" context="#pop" String="[@\\](?:[^@\\ \t\*]|\*(?!/))+" />
|
||||
<AnyChar attribute="Comment" context="#pop" String="\@" />
|
||||
</context>
|
||||
|
||||
<context name="LanguageId" attribute="Word" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="Escape sequence" defStyleNum="dsSpecialChar" />
|
||||
<itemData name="Tags" defStyleNum="dsAnnotation" bold="1" />
|
||||
<itemData name="Custom Tags" defStyleNum="dsAnnotation" />
|
||||
<itemData name="Word" defStyleNum="dsCommentVar" bold="1" italic="0" />
|
||||
<itemData name="HTML Tag" defStyleNum="dsKeyword" bold="1" italic="0" />
|
||||
<itemData name="Entities" defStyleNum="dsOthers" color="#4086C0" bold="1" italic="1" />
|
||||
<itemData name="Description" defStyleNum="dsDocumentation" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Region" defStyleNum="dsRegionMarker" />
|
||||
<itemData name="Identifier" defStyleNum="dsOthers" />
|
||||
<itemData name="HTML Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Types" defStyleNum="dsDataType" />
|
||||
<itemData name="Code" defStyleNum="dsComment" />
|
||||
<itemData name="Dot Graph" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
|
||||
<itemData name="Formulas" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
|
||||
<itemData name="Message Sequence Chart" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
|
||||
<itemData name="Verbatim" defStyleNum="dsComment" />
|
||||
<itemData name="Note" defStyleNum="dsInformation" bold="1" italic="0" />
|
||||
<itemData name="Warning" defStyleNum="dsWarning" bold="1" italic="0" />
|
||||
<itemData name="Attention" defStyleNum="dsAnnotation" bold="1" italic="0" />
|
||||
<itemData name="Todo" defStyleNum="dsAnnotation" bold="1" italic="0" />
|
||||
<itemData name="Error" defStyleNum="dsError" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="1" weakDeliminator="\$" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: indent-width 2; -->
|
||||
@@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE language[
|
||||
<!ENTITY nmtoken "[\-\w\d\.:_]+">
|
||||
<!ENTITY entref "(#[0-9]+|#[xX][0-9A-Fa-f]+|&nmtoken;);">
|
||||
]>
|
||||
<language name="DTD" version="4" kateversion="5.0" section="Markup" extensions="*.dtd" mimetype="application/xml-dtd" author="Andriy Lesyuk (s-andy@in.if.ua)" license="LGPL">
|
||||
<highlighting>
|
||||
|
||||
<list name="Category">
|
||||
<item>EMPTY</item>
|
||||
<item>ANY</item>
|
||||
<item>CDATA</item>
|
||||
<item>ID</item>
|
||||
<item>IDREF</item>
|
||||
<item>IDREFS</item>
|
||||
<item>NMTOKEN</item>
|
||||
<item>NMTOKENS</item>
|
||||
<item>ENTITY</item>
|
||||
<item>ENTITIES</item>
|
||||
<item>NOTATION</item>
|
||||
<item>PUBLIC</item>
|
||||
<item>SYSTEM</item>
|
||||
<item>NDATA</item>
|
||||
</list>
|
||||
|
||||
<list name="Keywords">
|
||||
<item>#PCDATA</item>
|
||||
<item>#REQUIRED</item>
|
||||
<item>#IMPLIED</item>
|
||||
<item>#FIXED</item>
|
||||
</list>
|
||||
|
||||
<contexts>
|
||||
<context name="Normal" attribute="Normal" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Comment" context="Comment" String="<!--" beginRegion="comment" />
|
||||
<StringDetect attribute="Processing Instruction" context="PI" String="<?xml" beginRegion="pi" />
|
||||
<StringDetect attribute="Declaration" context="Declaration" String="<!ELEMENT" beginRegion="declaration" />
|
||||
<StringDetect attribute="Declaration" context="Declaration" String="<!ATTLIST" beginRegion="declaration" />
|
||||
<StringDetect attribute="Declaration" context="Declaration" String="<!NOTATION" beginRegion="declaration" />
|
||||
<StringDetect attribute="Declaration" context="Declaration" String="<!ENTITY" beginRegion="declaration" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context name="Comment" attribute="Comment" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<StringDetect attribute="Comment" context="#pop" String="-->" endRegion="comment" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
<context name="PI" attribute="Other" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1=">" endRegion="pi" />
|
||||
</context>
|
||||
|
||||
<context name="Declaration" attribute="Other" lineEndContext="#stay">
|
||||
<StringDetect attribute="Comment" context="Comment" String="<!--" beginRegion="comment" />
|
||||
<Detect2Chars attribute="Comment" context="InlineComment" char="-" char1="-" />
|
||||
<DetectChar attribute="Declaration" context="#pop" char=">" endRegion="declaration" />
|
||||
<DetectChar attribute="String" context="String" char=""" />
|
||||
<RegExpr attribute="Declaration" context="#stay" String="(-|O)\s(-|O)" />
|
||||
<AnyChar attribute="Delimiter" context="#stay" String="(|)," />
|
||||
<RegExpr attribute="Entity" context="#stay" String="(%|&)&entref;" />
|
||||
<AnyChar attribute="Symbol" context="#stay" String="?*+-&" />
|
||||
<RegExpr attribute="Local" context="#stay" String="%\s" />
|
||||
<keyword attribute="Keyword" context="#stay" String="Category" />
|
||||
<keyword attribute="Keyword" context="#stay" String="Keywords" />
|
||||
<RegExpr attribute="Name" context="#stay" String="\b&nmtoken;\b" />
|
||||
</context>
|
||||
|
||||
<context name="String" attribute="String" lineEndContext="#stay">
|
||||
<DetectSpaces />
|
||||
<DetectChar attribute="String" context="#pop" char=""" />
|
||||
<RegExpr attribute="Entity" context="#stay" String="%&nmtoken;;" />
|
||||
</context>
|
||||
|
||||
<context name="InlineComment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<Detect2Chars attribute="Comment" context="#pop" char="-" char1="-" />
|
||||
<IncludeRules context="##Comments" />
|
||||
<DetectIdentifier />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="Normal" defStyleNum="dsNormal" />
|
||||
<itemData name="Other" defStyleNum="dsNormal" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="Declaration" defStyleNum="dsDataType" bold="1" spellChecking="false" />
|
||||
<itemData name="Name" defStyleNum="dsFunction" spellChecking="false" />
|
||||
<itemData name="Delimiter" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Symbol" defStyleNum="dsFloat" bold="1" spellChecking="false" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
|
||||
<itemData name="String" defStyleNum="dsString" spellChecking="false" />
|
||||
<itemData name="Entity" defStyleNum="dsDecVal" spellChecking="false" />
|
||||
<itemData name="Local" defStyleNum="dsDecVal" bold="1" spellChecking="false" />
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="multiLine" start="<!--" end="-->" region="comment" />
|
||||
</comments>
|
||||
</general>
|
||||
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|
||||
@@ -0,0 +1,262 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language>
|
||||
<language name="E Language" version="5" kateversion="5.0" section="Sources" extensions="*.e" mimetype="text/x-e-src">
|
||||
<highlighting>
|
||||
<list name="Type">
|
||||
<item>FALSE</item>
|
||||
<item>MAX_INT</item>
|
||||
<item>MIN_INT</item>
|
||||
<item>NULL</item>
|
||||
<item>TRUE</item>
|
||||
<item>UNDEF</item>
|
||||
<item>bit</item>
|
||||
<item>bits</item>
|
||||
<item>body</item>
|
||||
<item>bool</item>
|
||||
<item>byte</item>
|
||||
<item>byte_array</item>
|
||||
<item>continue</item>
|
||||
<item>copy</item>
|
||||
<item>default</item>
|
||||
<item>external_pointer</item>
|
||||
<item>files</item>
|
||||
<item>file</item>
|
||||
<item>form</item>
|
||||
<item>global</item>
|
||||
<item>index</item>
|
||||
<item>init</item>
|
||||
<item>int</item>
|
||||
<item>it</item>
|
||||
<item>list</item>
|
||||
<item>load</item>
|
||||
<item>long</item>
|
||||
<item>me</item>
|
||||
<item>method</item>
|
||||
<item>module</item>
|
||||
<item>ntv</item>
|
||||
<item>of</item>
|
||||
<item>pat</item>
|
||||
<item>print</item>
|
||||
<item>result</item>
|
||||
<item>source_ref</item>
|
||||
<item>string</item>
|
||||
<item>symtab</item>
|
||||
<item>sys</item>
|
||||
<item>test</item>
|
||||
<item>uint</item>
|
||||
<item>untyped</item>
|
||||
<item>vec</item>
|
||||
</list>
|
||||
<list name="Function">
|
||||
<item>run</item>
|
||||
<item>init</item>
|
||||
<item>pre_generate</item>
|
||||
<item>dut_error</item>
|
||||
<item>pack</item>
|
||||
<item>unpack</item>
|
||||
<item>post_generate</item>
|
||||
<item>pre_generate</item>
|
||||
<item>set_config</item>
|
||||
<item>hex</item>
|
||||
<item>stop_run</item>
|
||||
<item>append</item>
|
||||
<item>size</item>
|
||||
<item>delete</item>
|
||||
<item>is_empty</item>
|
||||
<item>deep_compare</item>
|
||||
<item>deep_compare_physical</item>
|
||||
<item>clear</item>
|
||||
<item>pop0</item>
|
||||
<item>setup</item>
|
||||
<item>crc_32</item>
|
||||
</list>
|
||||
<list name="Statement">
|
||||
<item>chars</item>
|
||||
<item>define</item>
|
||||
<item>extend</item>
|
||||
<item>event</item>
|
||||
<item>ECHO</item>
|
||||
<item>DOECHO</item>
|
||||
<item>import</item>
|
||||
<item>initialize</item>
|
||||
<item>non_terminal</item>
|
||||
<item>struct</item>
|
||||
<item>unit</item>
|
||||
<item>script</item>
|
||||
<item>testgroup</item>
|
||||
<item>type</item>
|
||||
</list>
|
||||
<list name="Action">
|
||||
<item>C</item>
|
||||
<item>add</item>
|
||||
<item>also</item>
|
||||
<item>and</item>
|
||||
<item>as</item>
|
||||
<item>as_a</item>
|
||||
<item>break</item>
|
||||
<item>code</item>
|
||||
<item>compute</item>
|
||||
<item>computed</item>
|
||||
<item>delayed</item>
|
||||
<item>do</item>
|
||||
<item>else</item>
|
||||
<item>each</item>
|
||||
<item>emit</item>
|
||||
<item>empty</item>
|
||||
<item>end</item>
|
||||
<item>exit</item>
|
||||
<item>finish</item>
|
||||
<item>for</item>
|
||||
<item>from</item>
|
||||
<item>if</item>
|
||||
<item>in</item>
|
||||
<item>is</item>
|
||||
<item>like</item>
|
||||
<item>log</item>
|
||||
<item>new</item>
|
||||
<item>no</item>
|
||||
<item>not</item>
|
||||
<item>only</item>
|
||||
<item>or</item>
|
||||
<item>out</item>
|
||||
<item>read</item>
|
||||
<item>repeat</item>
|
||||
<item>return</item>
|
||||
<item>reverse</item>
|
||||
<item>routine</item>
|
||||
<item>step</item>
|
||||
<item>then</item>
|
||||
<item>to</item>
|
||||
<item>traceable</item>
|
||||
<item>untraceable</item>
|
||||
<item>var</item>
|
||||
<item>when</item>
|
||||
<item>while</item>
|
||||
<item>with</item>
|
||||
<item>write</item>
|
||||
<item>xor</item>
|
||||
</list>
|
||||
<list name="Generation">
|
||||
<item>before</item>
|
||||
<item>by</item>
|
||||
<item>choose</item>
|
||||
<item>gen</item>
|
||||
<item>keep</item>
|
||||
<item>keeping</item>
|
||||
<item>matches</item>
|
||||
<item>next</item>
|
||||
<item>select</item>
|
||||
<item>sequence</item>
|
||||
<item>soft</item>
|
||||
<item>using</item>
|
||||
</list>
|
||||
<list name="Cover">
|
||||
<item>address</item>
|
||||
<item>cover</item>
|
||||
<item>error</item>
|
||||
<item>events</item>
|
||||
<item>event</item>
|
||||
<item>length</item>
|
||||
<item>kind</item>
|
||||
<item>ranges</item>
|
||||
<item>range</item>
|
||||
<item>sample</item>
|
||||
<item>text</item>
|
||||
<item>value</item>
|
||||
<item>item</item>
|
||||
<item>transition</item>
|
||||
<item>illegal</item>
|
||||
</list>
|
||||
<list name="Simulator">
|
||||
<item>always</item>
|
||||
<item>all</item>
|
||||
<item>basic</item>
|
||||
<item>call</item>
|
||||
<item>cycles</item>
|
||||
<item>cycle</item>
|
||||
<item>clock</item>
|
||||
<item>change</item>
|
||||
<item>check</item>
|
||||
<item>expect</item>
|
||||
<item>fall</item>
|
||||
<item>first</item>
|
||||
<item>forever</item>
|
||||
<item>idle</item>
|
||||
<item>initial</item>
|
||||
<item>negedge</item>
|
||||
<item>others</item>
|
||||
<item>on</item>
|
||||
<item>posedge</item>
|
||||
<item>rise</item>
|
||||
<item>start</item>
|
||||
<item>that</item>
|
||||
<item>time</item>
|
||||
<item>task</item>
|
||||
<item>until</item>
|
||||
<item>verilog</item>
|
||||
<item>vhdl</item>
|
||||
<item>wait</item>
|
||||
<item>within</item>
|
||||
</list>
|
||||
<contexts>
|
||||
|
||||
<context name="out_comment" attribute="OutSide E code" lineEndContext="#stay">
|
||||
<Detect2Chars attribute="Normal Text" context="normal" char="<" char1="'" />
|
||||
</context>
|
||||
|
||||
<context name="normal" attribute="Normal Text" lineEndContext="#stay">
|
||||
<DetectChar attribute="Operators" context="#stay" char="{" beginRegion="Region1"/>
|
||||
<DetectChar attribute="Operators" context="#stay" char="}" endRegion="Region1"/>
|
||||
<HlCHex attribute="Integer" context="#stay" />
|
||||
<HlCOct attribute="Integer" context="#stay" />
|
||||
<Int attribute="Integer" context="#stay" />
|
||||
<Detect2Chars attribute="Normal Text" context="out_comment" char="'" char1=">" />
|
||||
<Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />
|
||||
<Detect2Chars attribute="Comment" context="comment" char="/" char1="/" />
|
||||
<DetectChar attribute="Vector" context="string" char=""" />
|
||||
<AnyChar attribute="Operators" context="#stay" String="'[&><=:+\-*\|].,;" />
|
||||
<keyword attribute="Data Type" context="#stay" String="Type"/>
|
||||
<keyword attribute="Function" context="#stay" String="Function"/>
|
||||
<keyword attribute="Statement" context="#stay" String="Statement"/>
|
||||
<keyword attribute="Action" context="#stay" String="Action"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="Generation"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="Cover"/>
|
||||
<keyword attribute="Keyword" context="#stay" String="Simulator"/>
|
||||
|
||||
</context>
|
||||
|
||||
|
||||
<context name="comment" attribute="Comment" lineEndContext="#pop">
|
||||
<DetectSpaces />
|
||||
<IncludeRules context="##Comments" />
|
||||
</context>
|
||||
|
||||
<context name="string" attribute="Vector" lineEndContext="#stay" >
|
||||
<DetectChar attribute="Vector" context="#pop" char=""" />
|
||||
</context>
|
||||
|
||||
</contexts>
|
||||
|
||||
<itemDatas>
|
||||
<itemData name="OutSide E code" defStyleNum="dsComment"/>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
||||
<itemData name="Keyword" defStyleNum="dsKeyword" />
|
||||
<itemData name="Function" defStyleNum="dsFunction" bold="1"/>
|
||||
<itemData name="Statement" defStyleNum="dsBuiltIn" bold="1" italic="0" />
|
||||
<itemData name="Action" defStyleNum="dsExtension" bold="1" italic="0" />
|
||||
<itemData name="Data Type" defStyleNum="dsDataType" />
|
||||
<itemData name="Comment" defStyleNum="dsComment" />
|
||||
<itemData name="Integer" defStyleNum="dsDecVal" />
|
||||
<itemData name="Vector" defStyleNum="dsString" />
|
||||
<itemData name="Operators" defStyleNum="dsOperator" bold="0" italic="0" />
|
||||
</itemDatas>
|
||||
|
||||
</highlighting>
|
||||
<general>
|
||||
<comments>
|
||||
<comment name="singleLine" start="//" />
|
||||
</comments>
|
||||
<keywords casesensitive="1" />
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user