micro/runtime/syntax
Andrew Geng 2a9a5afbb2
Fix python decorator syntax. (#2827)
1. Python decorators begin a compound statement, so they only appear
   at the start of a line. So match at the line start to avoid giving
   decorator colors to matrix multiplication (@) expressions. Source:
   https://docs.python.org/3/reference/compound_stmts.html#function-definitions

2. Python decorators go to the end of the line and might not include
   parentheses (for example @functools.cache). So instead of matching
   everything until an `(`, just match as many non-`(` characters
   as possible---which both catches the @functools.cache example and
   allows decorator parameters to fall back to the default color.

3. Instead of hardcoding `brightgreen` (which railscast.micro also
   complains about), color decorators as `preproc` (otherwise unused
   by the python syntax files, and arguably the right colorscheme
   group to be using for syntactic sugars anyway). Note this will
   change decorator colors---for example from bright green to kinda
   brown on monokai, and from yellow to more of a light orange on
   railscast.
2023-10-16 11:08:37 +02:00
..
ada.yaml #964 add ada syntax 2017-12-27 14:27:42 +00:00
apacheconf.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
arduino.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
asciidoc.yaml Improve new syntax files and fix a region glitch 2017-03-21 15:07:39 -04:00
asm.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
ats.yaml Update ats syntax (#1141) 2018-07-16 15:37:57 -04:00
awk.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
bat.yaml fix: recognize .cmd as batch files (#2922) 2023-10-16 10:47:44 +02:00
c.yaml Fix: Syntax highlighting for various issues (#2810) 2023-06-05 17:39:12 -07:00
caddyfile.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
clojure.yaml match .edn files 2018-10-16 10:39:09 -03:00
cmake.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
coffeescript.yaml coffeescript syntax fix (#1861) 2020-09-16 00:06:40 -04:00
colortest.yaml Improve new syntax files and fix a region glitch 2017-03-21 15:07:39 -04:00
conky.yaml Improve new syntax files and fix a region glitch 2017-03-21 15:07:39 -04:00
cpp.yaml Fix: Syntax highlighting for various issues (#2810) 2023-06-05 17:39:12 -07:00
crontab.yaml Support month and day names in crontab syntax 2020-06-24 16:33:22 -04:00
crystal.yaml Fix Crystal syntax highlighting (#1844) 2020-09-17 23:20:28 -04:00
csharp.yaml csharp bracket highlighting problem #1172 (#1199) 2020-02-09 00:21:27 -05:00
css.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
csx.yaml Support csharp-script syntax. (#1425) 2020-04-10 13:57:36 -04:00
cuda.yaml Add CUDA syntax support (#2652) 2022-12-03 22:17:35 -08:00
cython.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
d.yaml Julia syntax improvements (#2415) 2022-05-15 13:00:59 -07:00
dart.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
dockerfile.yaml Treat Containerfiles as Dockerfiles (#2846) 2023-07-08 14:07:19 -07:00
dot.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
elixir.yaml Elixir configuration (#1118) 2018-05-26 10:08:35 -04:00
elm.yaml Add Elm syntax file 2019-04-25 22:45:23 -05:00
erb.yaml Case-insensitive highlighting of hexadecimal constants 2022-07-24 14:03:53 -07:00
erlang.yaml Fix erlang comment syntax 2021-05-31 20:26:32 -04:00
fish.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
forth.yaml Add Forth highlighting 2019-05-25 21:01:24 -07:00
fortran.yaml improve fortran syntax highlighting (#2479) 2022-07-17 12:18:30 -07:00
freebsd-kernel.yaml Syntax Highlighting Support for FreeBSD Kernel Configuration Files (#2220) 2021-09-24 14:39:46 -07:00
fsharp.yaml F# Configuration 2018-05-29 20:02:58 +05:30
gdscript.yaml Improve the GDScript syntax file 2018-08-07 15:16:23 +02:00
gemini.yaml Add Gemini syntax file (#2016) 2021-02-17 22:27:56 -05:00
gentoo-ebuild.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
gentoo-etc-portage.yaml Changed filename detection for Gentoo etc-portage to include detection of folders 2018-10-19 09:47:51 +02:00
git-commit.yaml syntax: Fix include of patch in git-commit (#2917) 2023-09-14 13:26:51 -07:00
git-config.yaml Use type.keyword instead of keyword 2017-09-13 18:00:47 -04:00
git-rebase-todo.yaml Case-insensitive highlighting of hexadecimal constants 2022-07-24 14:03:53 -07:00
glsl.yaml Improve new syntax files and fix a region glitch 2017-03-21 15:07:39 -04:00
gnuplot.yaml Gnuplot Syntax highlighting (#2483) 2022-07-17 12:17:11 -07:00
go.yaml Add golang keywords (#1455) 2020-01-06 12:06:44 -05:00
godoc.yaml Add mc, godoc syntax files 2019-11-05 22:57:36 -05:00
golo.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
graphql.yaml add support for input and scalar defintiions (for graphql-tools schema) 2019-05-16 16:25:51 -07:00
groff.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
groovy.yaml Add support for Jenkinsfile syntax (#2750) 2023-07-08 14:08:34 -07:00
haml.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
hare.yaml Hare (harelang) syntax (#2776) 2023-03-16 13:26:33 -07:00
haskell.yaml Improve Haskell syntax highlighting (#1745) 2020-06-26 17:53:43 -04:00
hc.yaml added support for HolyC (#2473) 2022-07-17 12:18:39 -07:00
html.yaml Merge branch 'issue_1008' of https://github.com/sum01/micro into sum01-issue_1008 2020-02-10 14:59:31 -05:00
html4.yaml Case-insensitive highlighting of hexadecimal constants 2022-07-24 14:03:53 -07:00
html5.yaml Case-insensitive highlighting of hexadecimal constants 2022-07-24 14:03:53 -07:00
ini.yaml Highlight .tscn, .tres and project.godot files using INI syntax 2018-09-29 12:14:15 +02:00
inputrc.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
java.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
javascript.yaml Fix: Syntax highlighting for various issues (#2810) 2023-06-05 17:39:12 -07:00
jinja2.yaml Remove detect requirement and detect in jinja file 2019-12-28 22:27:44 -05:00
json.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
jsonnet.yaml Add jsonnet syntax file (#1320) 2020-02-09 00:23:49 -05:00
julia.yaml Improve Julia syntax highlighting (#2643) 2022-12-02 17:49:50 -08:00
justfile.yaml Fix: Syntax highlighting for various issues (#2810) 2023-06-05 17:39:12 -07:00
keymap.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
kickstart.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
kotlin.yaml Enable syntax highlighting for Kotlin script files 2019-12-26 19:13:23 -05:00
ledger.yaml Improve yaml string highlighting 2017-08-14 11:28:10 -04:00
lfe.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
LICENSE Update readme 2020-02-10 00:38:57 -05:00
lilypond.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
lisp.yaml Highlight racket files as lisp (#1931) 2021-08-06 20:38:22 -04:00
lua.yaml Lua syntax highlighting: Various fixes (#2426) 2022-05-15 13:00:44 -07:00
mail.yaml Improve new syntax files and fix a region glitch 2017-03-21 15:07:39 -04:00
make_headers.go Ignore tool files 2021-08-21 18:07:43 -04:00
makefile.yaml Fix Makefile = highlighting 2018-01-17 23:44:53 -05:00
man.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
markdown.yaml Add livemd to markdown extensions 2022-07-20 10:16:42 -07:00
mc.yaml Add mc, godoc syntax files 2019-11-05 22:57:36 -05:00
micro.yaml Fix micro file syntax 2017-12-30 12:13:52 -05:00
mpdconf.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
nanorc.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
nginx.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
nim.yaml Fix edge case when comment is at start of line (#2237) 2021-12-05 17:45:10 -08:00
nix.yaml runtime/syntax/nix: Add support for block comments (#2488) 2022-07-17 12:16:47 -07:00
nu.yaml Add nushell syntax highlighting (#2486) 2022-07-17 12:16:57 -07:00
objc.yaml Case-insensitive highlighting of hexadecimal constants 2022-07-24 14:03:53 -07:00
ocaml.yaml Improve ocaml syntax highlighting 2018-01-30 22:34:44 -05:00
octave.yaml Added initial support for Octave/Matlab syntax highlighting 2017-10-02 14:08:22 +04:00
odin.yaml runtime/syntax: add rudimentary Odin support (#2296) 2022-02-11 14:15:34 -08:00
pascal.yaml Add skip statements to all strings 2017-03-29 09:45:16 -04:00
patch.yaml Improve patch file detection by adding a header rule. (#1942) 2021-04-07 16:20:57 -04:00
peg.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
perl.yaml Fix perl syntax file 2022-12-09 01:19:19 -08:00
php.yaml Fix: Syntax highlighting for various issues (#2810) 2023-06-05 17:39:12 -07:00
pkg-config.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
po.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
pony.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
pov.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
PowerShell.yaml Create PowerShell.yaml 2018-03-21 03:58:04 +01:00
privoxy-action.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
privoxy-config.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
privoxy-filter.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
proto.yaml Add proto syntax file 2019-11-06 07:23:04 -05:00
puppet.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
python2.yaml Fix python decorator syntax. (#2827) 2023-10-16 11:08:37 +02:00
python3.yaml Fix python decorator syntax. (#2827) 2023-10-16 11:08:37 +02:00
r.yaml Improved R syntax rules 2017-04-15 02:06:19 +02:00
raku.yaml Raku syntax: fix comments (#2318) 2021-12-31 18:51:53 -05:00
README.md Update readme 2019-12-25 16:17:31 -05:00
renpy.yaml Add syntax support for Renpy (#1789) 2020-07-22 15:26:37 -04:00
reST.yaml Improve new syntax files and fix a region glitch 2017-03-21 15:07:39 -04:00
rpmspec.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
ruby.yaml Fix: Syntax highlighting for various issues (#2810) 2023-06-05 17:39:12 -07:00
rust.yaml Update rust syntax: don't highlight lifetimes (#2164) 2021-07-21 15:02:28 -04:00
sage.yaml Add sagemath syntax highlight based on python3. (#1227) 2020-04-09 12:20:48 -04:00
scala.yaml Merge branch 'patch-1' of https://github.com/mardukbp/micro into mardukbp-patch-1 2022-07-24 13:59:12 -07:00
sed.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
sh.yaml highlighter: Fix regions and patterns inside regions (#2840) 2023-07-11 13:49:12 -07:00
sls.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
smalltalk.yaml Syntax: added support for Smalltalk (#2626) 2022-12-02 17:49:25 -08:00
solidity.yaml Use type.keyword instead of keyword 2017-09-13 18:00:47 -04:00
sql.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
stata.yaml Add Stata syntax file 2018-10-02 15:46:38 -04:00
svelte.yaml vue syntax (+typescript) & svelte syntax 2019-12-17 11:38:22 +01:00
swift.yaml Added kotlin highlighting and fixed swift line comment todo not highlighting. 2017-05-26 01:59:51 +01:00
syntax_converter.go Ignore tool files 2021-08-21 18:07:43 -04:00
systemd.yaml Add [Timer] section to systemd highlighting 2018-09-29 12:15:50 +02:00
tcl.yaml Fixes #1249 2018-12-21 12:50:33 -05:00
terraform.yaml Add Terraform syntax support (#2279) 2022-07-24 14:10:29 -07:00
tex.yaml fixed tex comment detection at start of line (#2764) 2023-04-20 15:21:59 -07:00
toml.yaml Rewrite TOML syntax file (#1681) 2020-05-26 14:10:27 -04:00
twig.yaml Add twig syntax (https://twig.sensiolabs.org/) 2017-06-30 12:31:18 +02:00
typescript.yaml Add template literal string highlighting to typescript (#2525) 2022-08-21 23:52:47 -07:00
v.yaml Update v.yaml (#1925) 2021-08-06 20:37:42 -04:00
vala.yaml improved highlighting for Vala types 2017-07-11 14:40:38 +02:00
verilog.yaml Syntax file change 2020-02-13 16:50:44 -05:00
vhdl.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
vi.yaml Fix: Syntax highlighting for various issues (#2810) 2023-06-05 17:39:12 -07:00
vue.yaml Case-insensitive highlighting of hexadecimal constants 2022-07-24 14:03:53 -07:00
xml.yaml Update xml.yaml 2020-01-06 12:29:33 -05:00
xresources.yaml Correct the comment from # to ! as point out in the gitter chat. 2017-06-10 11:33:50 +01:00
yaml.yaml highlighter: Fix regions and patterns inside regions (#2840) 2023-07-11 13:49:12 -07:00
yum.yaml Add converted syntax files 2017-03-21 14:55:22 -04:00
zig.yaml add new types for zig (#2861) 2023-07-10 23:11:07 -07:00
zscript.yaml Create zscript.yaml 2019-12-04 11:52:22 -07:00
zsh.yaml Update zsh.yaml 2018-12-13 09:55:19 +01:00

Syntax Files

Here are micro's syntax files.

Each yaml file specifies how to detect the filetype based on file extension or headers (first line of the file). Then there are patterns and regions linked to highlight groups which tell micro how to highlight that filetype.

Making your own syntax files is very simple. I recommend you check the file after you are finished with the syntax_checker.go program (located in this directory). Just place your yaml syntax file in the current directory and run go run syntax_checker.go and it will check every file. If there are no errors it will print No issues!.

You can read more about how to write syntax files (and colorschemes) in the colors documentation.

Legacy '.micro' filetype

Micro used to use the .micro filetype for syntax files which is no longer supported. If you have .micro syntax files that you would like to convert to the new filetype, you can use the syntax_converter.go program (also located in this directory):

$ go run syntax_converter.go c.micro > c.yaml

Most the the syntax files here have been converted using that tool.

Note that the tool isn't perfect and though it is unlikely, you may run into some small issues that you will have to fix manually (about 4 files from this directory had issues after being converted).

Micro syntax highlighting files

These are the syntax highlighting files for micro. To install them, just put all the syntax files in ~/.config/micro/syntax.

They are taken from Nano, specifically from this repository. Micro syntax files are almost identical to Nano's, except for some key differences:

  • Micro does not use icolor. Instead, for a case insensitive match, use the case insensitive flag (i) in the regular expression
    • For example, icolor green ".*" would become color green "(?i).*"

Using with colorschemes

Not all of these files have been converted to use micro's colorscheme feature. Most of them just hardcode the colors, which can be problematic depending on the colorscheme you use.

Here is a list of the files that have been converted to properly use colorschemes:

  • vi
  • go
  • c
  • d
  • markdown
  • html
  • lua
  • swift
  • rust
  • java
  • javascript
  • pascal
  • python
  • ruby
  • sh
  • git
  • tex
  • solidity

License

See LICENSE.