diff --git a/highlighter.go b/highlighter.go
index 381b3510..617206f3 100644
--- a/highlighter.go
+++ b/highlighter.go
@@ -16,7 +16,7 @@ var syntaxFiles map[[2]*regexp.Regexp][2]string
func LoadSyntaxFiles() {
usr, _ := user.Current()
dir := usr.HomeDir
- LoadSyntaxFilesFromDir(dir + "/.micro")
+ LoadSyntaxFilesFromDir(dir + "/.micro/syntax")
}
// JoinRule takes a syntax rule (which can be multiple regular expressions)
diff --git a/syntax_files/Dockerfile.micro b/syntax_files/Dockerfile.micro
new file mode 100644
index 00000000..435b52c0
--- /dev/null
+++ b/syntax_files/Dockerfile.micro
@@ -0,0 +1,26 @@
+## Syntax highlighting for Dockerfiles
+syntax "Dockerfile" "Dockerfile[^/]*$" "\.dockerfile$"
+
+## Keywords
+icolor red "^(FROM|MAINTAINER|RUN|CMD|LABEL|EXPOSE|ENV|ADD|COPY|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD)[[:space:]]"
+
+## Brackets & parenthesis
+color brightgreen "(\(|\)|\[|\])"
+
+## Double ampersand
+color brightmagenta "&&"
+
+## Comments
+icolor cyan "^[[:space:]]*#.*$"
+
+## Blank space at EOL
+color ,green "[[:space:]]+$"
+
+## Strings, single-quoted
+color brightwhite "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
+
+## Strings, double-quoted
+color brightwhite ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
+
+## Single and double quotes
+color brightyellow "('|\")"
diff --git a/syntax_files/README.md b/syntax_files/README.md
new file mode 100644
index 00000000..ca087e21
--- /dev/null
+++ b/syntax_files/README.md
@@ -0,0 +1,10 @@
+# Micro syntax highlighting files
+
+These are the syntax highlighting files for micro. To install them, just
+put them all in `~/.micro/syntax`.
+
+They are taken from Nano, specifically from [this repository](https://github.com/scopatz/nanorc).
+Micro syntax files are almost identical to Nano's, except for some key differences:
+
+* Micro does not use `icolor`. Instead use the case insensitive flag (`(?i)`) in the regular expression
+* Micro does not support `start="..." end="..."`, instead use the multiline match flag (`(?s)`) and put `.*?` in the middle
diff --git a/syntax_files/apacheconf.micro b/syntax_files/apacheconf.micro
new file mode 100644
index 00000000..ad08240e
--- /dev/null
+++ b/syntax_files/apacheconf.micro
@@ -0,0 +1,44 @@
+# Apache files
+syntax "Apacheconf" "httpd\.conf|mime\.types|vhosts\.d\\*|\.htaccess"
+color yellow ".+"
+color brightcyan "(AcceptMutex|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding)"
+color brightcyan "(AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch)"
+color brightcyan "(Allow|AllowCONNECT|AllowEncodedSlashes|AllowOverride|Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID)"
+color brightcyan "(Anonymous_VerifyEmail|AssignUserID|AuthAuthoritative|AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm)"
+color brightcyan "(AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize)"
+color brightcyan "(AuthGroupFile|AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases)"
+color brightcyan "(AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl|AuthName|AuthType|AuthUserFile)"
+color brightcyan "(BrowserMatch|BrowserMatchNoCase|BS2000Account|BufferedLogs|CacheDefaultExpire|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheExpiryCheck)"
+color brightcyan "(CacheFile|CacheForceCompletion|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheIgnoreCacheControl|CacheIgnoreHeaders)"
+color brightcyan "(CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire|CacheMaxFileSize|CacheMinFileSize|CacheNegotiatedDocs|CacheRoot|CacheSize|CacheTimeMargin)"
+color brightcyan "(CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckSpelling|ChildPerUserID|ContentDigest|CookieDomain|CookieExpires|CookieLog|CookieName)"
+color brightcyan "(CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultType)"
+color brightcyan "(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize|Deny|Directory|DirectoryIndex|DirectoryMatch|DirectorySlash)"
+color brightcyan "(DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|Example|ExpiresActive|ExpiresByType)"
+color brightcyan "(ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FileETag|Files|FilesMatch|ForceLanguagePriority|ForceType|ForensicLog|Group|Header)"
+color brightcyan "(HeaderName|HostnameLookups|IdentityCheck|IfDefine|IfModule|IfVersion|ImapBase|ImapDefault|ImapMenu|Include|IndexIgnore|IndexOptions|IndexOrderDefault)"
+color brightcyan "(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout)"
+color brightcyan "(LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize)"
+color brightcyan "(LDAPTrustedCA|LDAPTrustedCAType|Limit|LimitExcept|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine)"
+color brightcyan "(LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|Location|LocationMatch|LockFile|LogFormat|LogLevel|MaxClients|MaxKeepAliveRequests)"
+color brightcyan "(MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MCacheMaxObjectCount|MCacheMaxObjectSize)"
+color brightcyan "(MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads)"
+color brightcyan "(MMapFile|ModMimeUsePathInfo|MultiviewsMatch|NameVirtualHost|NoProxy|NumServers|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|PassEnv|PidFile)"
+color brightcyan "(ProtocolEcho|Proxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyIOBufferSize|ProxyMatch|ProxyMaxForwards|ProxyPass|ProxyPassReverse)"
+color brightcyan "(ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia|ReadmeName|Redirect|RedirectMatch)"
+color brightcyan "(RedirectPermanent|RedirectTemp|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader)"
+color brightcyan "(Require|RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC)"
+color brightcyan "(Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen)"
+color brightcyan "(SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetEnv|SetEnvIf|SetEnvIfNoCase|SetHandler)"
+color brightcyan "(SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath)"
+color brightcyan "(SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions)"
+color brightcyan "(SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite)"
+color brightcyan "(SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire)"
+color brightcyan "(SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|SuexecUserGroup|ThreadLimit)"
+color brightcyan "(ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnsetEnv|UseCanonicalName|User|UserDir|VirtualDocumentRoot)"
+color brightcyan "(VirtualDocumentRootIP|VirtualHost|VirtualScriptAlias|VirtualScriptAliasIP|Win32DisableAcceptEx|XBitHack)"
+color yellow "<[^>]+>"
+color brightcyan "?[A-Za-z]+"
+color brightcyan "(<||>)"
+color green "\"(\\.|[^\"])*\""
+color white "#.*"
diff --git a/syntax_files/arduino.micro b/syntax_files/arduino.micro
new file mode 100644
index 00000000..d3ffdd88
--- /dev/null
+++ b/syntax_files/arduino.micro
@@ -0,0 +1,116 @@
+
+## FILENAME: arduino.nanorc
+##
+## DESCRIPTION: The arduino.nanorc syntax files allows syntax highlighting
+## for Arduino sketch files in the GNU nano text editor.
+##
+## Maintainer: Nicholas Wilde
+## Version: 0.1
+## DATE: 06/23/2011
+##
+## HOMEPAGE: http://code.google.com/p/arduino-nano-editor-syntax/
+##
+## COMMENTS: -Most of the code was taken from the c.nanorc code found with
+## GNU nano 2.2.6.
+## -Direction was taken from the arduino vim syntax code by johannes
+##
+## -Tested on Ubuntu Server 11.04 Natty Narwhal and GNU nano 2.2.6
+##
+## DIRECTIONS: For Ubuntu Server 11.04 Natty Narwhal:
+## -Move this file to the nano directory
+## /usr/share/nano/
+## -Add arduino.nanorc reference to the nanorc settings file
+## /etc/nanorc
+## ...
+## ## Arduino
+## /usr/share/nano/arduino.nanorc
+## ...
+
+syntax "INO" "\.?ino$"
+
+##
+color brightred "\b[A-Z_][0-9A-Z_]+\b"
+
+##
+color green "\b((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\b"
+
+## Constants
+icolor green "\b(HIGH|LOW|INPUT|OUTPUT)\b"
+
+## Serial Print
+icolor red "\b(DEC|BIN|HEX|OCT|BYTE)\b"
+
+## PI Constants
+icolor green "\b(PI|HALF_PI|TWO_PI)\b"
+
+## ShiftOut
+icolor green "\b(LSBFIRST|MSBFIRST)\b"
+
+## Attach Interrupt
+icolor green "\b(CHANGE|FALLING|RISING)\b"
+
+## Analog Reference
+icolor green "\b(DEFAULT|EXTERNAL|INTERNAL|INTERNAL1V1|INTERNAL2V56)\b"
+
+## === FUNCTIONS === ##
+
+## Data Types
+color green "\b(boolean|byte|char|float|int|long|word)\b"
+
+## Control Structions
+color brightyellow "\b(case|class|default|do|double|else|false|for|if|new|null|private|protected|public|short|signed|static|String|switch|this|throw|try|true|unsigned|void|while)\b"
+color magenta "\b(goto|continue|break|return)\b"
+
+## Math
+color brightyellow "\b(abs|acos|asin|atan|atan2|ceil|constrain|cos|degrees|exp|floor|log|map|max|min|radians|random|randomSeed|round|sin|sq|sqrt|tan)\b"
+
+## Bits & Bytes
+color brightyellow "\b(bitRead|bitWrite|bitSet|bitClear|bit|highByte|lowByte)\b"
+
+## Analog I/O
+color brightyellow "\b(analogReference|analogRead|analogWrite)\b"
+
+## External Interrupts
+color brightyellow "\b(attachInterrupt|detachInterrupt)\b"
+
+## Time
+color brightyellow "\b(delay|delayMicroseconds|millis|micros)\b"
+
+## Digital I/O
+color brightyellow "\b(pinMode|digitalWrite|digitalRead)\b"
+
+## Interrupts
+color brightyellow "\b(interrupts|noInterrupts)\b"
+
+## Advanced I/O
+color brightyellow "\b(noTone|pulseIn|shiftIn|shiftOut|tone)\b"
+
+## Serial
+color magenta "\b(Serial|Serial1|Serial2|Serial3|begin|end|peek|read|print|println|available|flush)\b"
+
+## Structure
+color brightyellow "\b(setup|loop)\b"
+
+##
+color brightcyan "^[[:space:]]*#[[:space:]]*(define|include(_next)?|(un|ifn?)def|endif|el(if|se)|if|warning|error|pragma)"
+
+##
+color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
+
+## GCC builtins
+color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
+
+## String highlighting. You will in general want your comments and
+## strings to come last, because syntax highlighting rules will be
+## applied in the order they are read in.
+color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
+
+## This string is VERY resource intensive!
+color brightyellow "(?s)"(\\.|[^"])*\\[[:space:]]*$.*?^(\\.|[^"])*""
+
+## Comments
+color brightblue "//.*"
+color brightblue "(?s)/\*.*?\*/"
+
+## Trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/syntax_files/asciidoc.micro b/syntax_files/asciidoc.micro
new file mode 100644
index 00000000..b16a74ee
--- /dev/null
+++ b/syntax_files/asciidoc.micro
@@ -0,0 +1,47 @@
+syntax "AsciiDoc" "\.(asc|asciidoc|adoc)$"
+
+# main header
+color red "^====+$"
+# h1
+color red "^==[[:space:]].*$"
+color red "^----+$"
+# h2
+color magenta "^===[[:space:]].*$"
+color magenta "^~~~~+$"
+# h4
+color green "^====[[:space:]].*$"
+color green "^\^\^\^\^+$"
+# h5
+color brightblue "^=====[[:space:]].*$"
+color brightblue "^\+\+\+\++$"
+
+# attributes
+color brightgreen ":.*:"
+color brightred "\{[a-z0-9]*\}"
+color red "\\\{[a-z0-9]*\}"
+color red "\+\+\+\{[a-z0-9]*\}\+\+\+"
+
+# Paragraph Title
+color yellow "^\..*$"
+
+# source
+color magenta "^\[(source,.+|NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]"
+
+# Other markup
+color yellow ".*[[:space:]]\+$"
+color yellow "_[^_]+_"
+color yellow "\*[^\*]+\*"
+color yellow "\+[^\+]+\+"
+color yellow "`[^`]+`"
+color yellow "\^[^\^]+\^"
+color yellow "~[^~]+~"
+color yellow "'[^']+'"
+
+color cyan "`{1,2}[^']+'{1,2}"
+
+# bullets
+color brightmagenta "^[[:space:]]*[\*\.-]{1,5}[[:space:]]"
+
+# anchors
+color brightwhite "\[\[.*\]\]"
+color brightwhite "<<.*>>"
diff --git a/syntax_files/asm.micro b/syntax_files/asm.micro
new file mode 100644
index 00000000..0a90d923
--- /dev/null
+++ b/syntax_files/asm.micro
@@ -0,0 +1,17 @@
+## Here is an example for assembler.
+##
+syntax "ASM" "\.(S|s|asm)$"
+color red "\b[A-Z_]{2,}\b"
+color brightgreen "\.(data|subsection|text)"
+color green "\.(align|file|globl|global|hidden|section|size|type|weak)"
+color brightyellow "\.(ascii|asciz|byte|double|float|hword|int|long|short|single|struct|word)"
+icolor brightred "^[[:space:]]*[.0-9A-Z_]*:"
+color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
+## Highlight strings (note: VERY resource intensive)
+color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
+color brightyellow "(?s)"(\\.|[^"])*\\[[:space:]]*$.*?^(\\.|[^"])*""
+## Highlight comments
+color brightblue "//.*"
+color brightblue "(?s)/\*.*?\*/"
+## Highlight trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/syntax_files/awk.micro b/syntax_files/awk.micro
new file mode 100644
index 00000000..ad7b8482
--- /dev/null
+++ b/syntax_files/awk.micro
@@ -0,0 +1,25 @@
+syntax "AWK" "\.awk$"
+header "^#!.*bin/(env +)?awk( |$)"
+
+color brightyellow "\$[A-Za-z0-9_!@#$*?-]+"
+color brightyellow "\b(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\b"
+color brightyellow "\b(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\b"
+color brightyellow "\b(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\b"
+color brightblue "\b(function|extension|BEGIN|END)\b"
+color red "[-+*/%^|!=&<>?;:]|\\|\[|\]"
+color cyan "\b(for|if|while|do|else|in|delete|exit)\b"
+color cyan "\b(break|continue|return)\b"
+color brightblue "\b(close|getline|next|nextfile|print|printf|system|fflush)\b"
+color brightblue "\b(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\b"
+color brightblue "\b(asort|asorti|gensub|gsub|index|length|match)\b"
+color brightblue "\b(split|sprintf|strtonum|sub|substr|tolower|toupper)\b"
+color brightblue "\b(mktime|strftime|systime)\b"
+color brightblue "\b(and|compl|lshift|or|rshift|xor)\b"
+color brightblue "\b(bindtextdomain|dcgettext|dcngettext)\b"
+color magenta "/.*[^\]/"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color magenta "\\."
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color brightwhite,cyan "TODO:?"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/c.micro b/syntax_files/c.micro
new file mode 100644
index 00000000..165b38ca
--- /dev/null
+++ b/syntax_files/c.micro
@@ -0,0 +1,39 @@
+## Here is an example for C/C++.
+##
+syntax "C" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$" "\.(def)$"
+color brightred "\b[A-Z_][0-9A-Z_]+\b"
+color green "\b(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\b"
+color green "\b((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\b"
+color green "\b(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\b"
+color green "\b(for|if|while|do|else|case|default|switch)\b"
+color green "\b(try|throw|catch|operator|new|delete)\b"
+color brightmagenta "\b(goto|continue|break|return)\b"
+color brightcyan "^[[:space:]]*#[[:space:]]*(define|include|(un|ifn?)def|endif|el(if|se)|if|warning|error)"
+color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
+
+##
+## GCC builtins
+color green "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
+
+#Operator Color
+color yellow "[.:;,+*|=!\%]" "<" ">" "/" "-" "&"
+
+#Parenthetical Color
+color magenta "[(){}]" "\[" "\]"
+
+
+##
+## String highlighting. You will in general want your comments and
+## strings to come last, because syntax highlighting rules will be
+## applied in the order they are read in.
+color cyan ""(\\.|[^"])*""
+##
+## This string is VERY resource intensive!
+#color cyan "(?s)"(\\.|[^"])*\\[[:space:]]*$.*?^(\\.|[^"])*""
+
+## Comment highlighting
+color brightblue "//.*"
+color brightblue "(?s)/\*.*?\*/"
+
+## Trailing whitespace
+#color ,green "[[:space:]]+$"
diff --git a/syntax_files/cmake.micro b/syntax_files/cmake.micro
new file mode 100644
index 00000000..cc2aae40
--- /dev/null
+++ b/syntax_files/cmake.micro
@@ -0,0 +1,22 @@
+## CMake syntax highlighter for GNU Nano
+##
+syntax "CMake" "(CMakeLists\.txt|\.cmake)$"
+
+icolor green "^[[:space:]]*[A-Z0-9_]+"
+icolor brightyellow "^[[:space:]]*(include|include_directories|include_external_msproject)\b"
+
+icolor brightgreen "^[[:space:]]*\b((else|end)?if|else|(end)?while|(end)?foreach|break)\b"
+color brightgreen "\b(COPY|NOT|COMMAND|PROPERTY|POLICY|TARGET|EXISTS|IS_(DIRECTORY|ABSOLUTE)|DEFINED)\b[[:space:]]"
+color brightgreen "[[:space:]]\b(OR|AND|IS_NEWER_THAN|MATCHES|(STR|VERSION_)?(LESS|GREATER|EQUAL))\b[[:space:]]"
+
+icolor brightred "^[[:space:]]*\b((end)?(function|macro)|return)"
+
+#String Color
+color cyan "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"
+color cyan "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
+
+icolor brightred "(?s)\$(\{|ENV\{).*?\}"
+color magenta "\b(APPLE|UNIX|WIN32|CYGWIN|BORLAND|MINGW|MSVC(_IDE|60|71|80|90)?)\b"
+
+icolor brightblue "^([[:space:]]*)?#.*"
+icolor brightblue "[[:space:]]#.*"
diff --git a/syntax_files/coffeescript.micro b/syntax_files/coffeescript.micro
new file mode 100644
index 00000000..5322e1e1
--- /dev/null
+++ b/syntax_files/coffeescript.micro
@@ -0,0 +1,16 @@
+syntax "CoffeeScript" "\.coffee$"
+header "^#!.*/(env +)?coffee"
+
+color red "[!&|=/*+-<>]|\b(and|or|is|isnt|not)\b"
+color brightblue "[A-Za-z_][A-Za-z0-9_]*:[[:space:]]*(->|\()" "->"
+color brightblue "[()]"
+color cyan "\b(for|of|continue|break|isnt|null|unless|this|else|if|return)\b"
+color cyan "\b(try|catch|finally|throw|new|delete|typeof|in|instanceof)\b"
+color cyan "\b(debugger|switch|while|do|class|extends|super)\b"
+color cyan "\b(undefined|then|unless|until|loop|of|by|when)\b"
+color brightcyan "\b(true|false|yes|no|on|off)\b"
+color brightyellow "@[A-Za-z0-9_]*"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/colortest.micro b/syntax_files/colortest.micro
new file mode 100644
index 00000000..978b4643
--- /dev/null
+++ b/syntax_files/colortest.micro
@@ -0,0 +1,17 @@
+syntax "colorTest" "ColorTest$"
+
+color black "\bPLAIN\b"
+
+color red "\bred\b"
+color green "\bgreen\b"
+color yellow "\byellow\b"
+color blue "\bblue\b"
+color magenta "\bmagenta\b"
+color cyan "\bcyan\b"
+
+color brightred "\bbrightred\b"
+color brightgreen "\bbrightgreen\b"
+color brightyellow "\bbrightyellow\b"
+color brightblue "\bbrightblue\b"
+color brightmagenta "\bbrightmagenta\b"
+color brightcyan "\bbrightcyan\b"
diff --git a/syntax_files/conf.micro b/syntax_files/conf.micro
new file mode 100644
index 00000000..0cfb8900
--- /dev/null
+++ b/syntax_files/conf.micro
@@ -0,0 +1,9 @@
+## Here is an example for nanorc files.
+##
+syntax "Conf" "\.c[o]?nf$"
+## Possible errors and parameters
+## Strings
+icolor white ""(\\.|[^"])*""
+## Comments
+icolor brightblue "^[[:space:]]*#.*$"
+icolor cyan "^[[:space:]]*##.*$"
diff --git a/syntax_files/conky.micro b/syntax_files/conky.micro
new file mode 100644
index 00000000..173747b3
--- /dev/null
+++ b/syntax_files/conky.micro
@@ -0,0 +1,18 @@
+##
+## Syntax highlighting for conkyrc files.
+##
+##
+syntax "Conky" "(\.*conkyrc.*$|conky.conf)"
+
+## Configuration items
+color green "\b(alignment|append_file|background|border_inner_margin|border_outer_margin|border_width|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|colorN|cpu_avg_samples|default_bar_height|default_bar_width|default_color|default_gauge_height|default_gauge_width|default_graph_height|default_graph_width|default_outline_color|default_shade_color|diskio_avg_samples|display|double_buffer|draw_borders|draw_graph_borders|draw_outline|draw_shades|extra_newline|font|format_human_readable|gap_x|gap_y|http_refresh|if_up_strictness|imap|imlib_cache_flush_interval|imlib_cache_size|lua_draw_hook_post|lua_draw_hook_pre|lua_load|lua_shutdown_hook|lua_startup_hook|mail_spool|max_port_monitor_connections|max_text_width|max_user_text|maximum_width|minimum_height|minimum_width|mpd_host|mpd_password|mpd_port|music_player_interval|mysql_host|mysql_port|mysql_user|mysql_password|mysql_db|net_avg_samples|no_buffers|nvidia_display|out_to_console|out_to_http|out_to_ncurses|out_to_stderr|out_to_x|override_utf8_locale|overwrite_file|own_window|own_window_class|own_window_colour|own_window_hints|own_window_title|own_window_transparent|own_window_type|pad_percents|pop3|sensor_device|short_units|show_graph_range|show_graph_scale|stippled_borders|temperature_unit|template|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|text|text_buffer_size|times_in_seconds|top_cpu_separate|top_name_width|total_run_times|update_interval|update_interval_on_battery|uppercase|use_spacer|use_xft|xftalpha|xftfont)\b"
+
+## Configuration item constants
+color yellow "\b(above|below|bottom_left|bottom_right|bottom_middle|desktop|dock|no|none|normal|override|skip_pager|skip_taskbar|sticky|top_left|top_right|top_middle|middle_left|middle_right|middle_middle|undecorated|yes)\b"
+
+## Variables
+color brightblue "\b(acpiacadapter|acpifan|acpitemp|addr|addrs|alignc|alignr|apcupsd|apcupsd_cable|apcupsd_charge|apcupsd_lastxfer|apcupsd_linev|apcupsd_load|apcupsd_loadbar|apcupsd_loadgauge|apcupsd_loadgraph|apcupsd_model|apcupsd_name|apcupsd_status|apcupsd_temp|apcupsd_timeleft|apcupsd_upsmode|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_main_volume|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_bar|battery_percent|battery_short|battery_time|blink|bmpx_album|bmpx_artist|bmpx_bitrate|bmpx_title|bmpx_track|bmpx_uri|buffers|cached|cmdline_to_pid|color|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|combine|conky_build_arch|conky_build_date|conky_version|cpu|cpubar|cpugauge|cpugraph|curl|desktop|desktop_name|desktop_number|disk_protect|diskio|diskio_read|diskio_write|diskiograph|diskiograph_read|diskiograph_write|distribution|downspeed|downspeedf|downspeedgraph|draft_mails|else|endif|entropy_avail|entropy_bar|entropy_perc|entropy_poolsize|eval|eve|exec|execbar|execgauge|execgraph|execi|execibar|execigauge|execigraph|execp|execpi|flagged_mails|font|format_time|forwarded_mails|freq|freq_g|fs_bar|fs_bar_free|fs_free|fs_free_perc|fs_size|fs_type|fs_used|fs_used_perc|goto|gw_iface|gw_ip|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|ibm_brightness|ibm_fan|ibm_temps|ibm_volume|ical|iconv_start|iconv_stop|if_empty|if_existing|if_gw|if_match|if_mixer_mute|if_mounted|if_mpd_playing|if_running|if_smapi_bat_installed|if_up|if_updatenr|if_xmms2_connected|image|imap_messages|imap_unseen|ioscheduler|irc|kernel|laptop_mode|lines|loadavg|loadgraph|lua|lua_bar|lua_gauge|lua_graph|lua_parse|machine|mails|mboxscan|mem|memwithbuffers|membar|memwithbuffersbar|memeasyfree|memfree|memgauge|memgraph|memmax|memperc|mixer|mixerbar|mixerl|mixerlbar|mixerr|mixerrbar|moc_album|moc_artist|moc_bitrate|moc_curtime|moc_file|moc_rate|moc_song|moc_state|moc_timeleft|moc_title|moc_totaltime|monitor|monitor_number|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_random|mpd_repeat|mpd_smart|mpd_status|mpd_title|mpd_track|mpd_vol|mysql|nameserver|new_mails|nodename|nodename_short|no_update|nvidia|obsd_product|obsd_sensors_fan|obsd_sensors_temp|obsd_sensors_volt|obsd_vendor|offset|outlinecolor|pb_battery|pid_chroot|pid_cmdline|pid_cwd|pid_environ|pid_environ_list|pid_exe|pid_nice|pid_openfiles|pid_parent|pid_priority|pid_state|pid_state_short|pid_stderr|pid_stdin|pid_stdout|pid_threads|pid_thread_list|pid_time_kernelmode|pid_time_usermode|pid_time|pid_uid|pid_euid|pid_suid|pid_fsuid|pid_gid|pid_egid|pid_sgid|pid_fsgid|pid_read|pid_vmpeak|pid_vmsize|pid_vmlck|pid_vmhwm|pid_vmrss|pid_vmdata|pid_vmstk|pid_vmexe|pid_vmlib|pid_vmpte|pid_write|platform|pop3_unseen|pop3_used|processes|read_tcp|read_udp|replied_mails|rss|running_processes|running_threads|scroll|seen_mails|shadecolor|smapi|smapi_bat_bar|smapi_bat_perc|smapi_bat_power|smapi_bat_temp|sony_fanspeed|stippled_hr|stock|swap|swapbar|swapfree|swapmax|swapperc|sysname|tab|tail|tcp_ping|tcp_portmon|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|texeci|texecpi|threads|time|to_bytes|top|top_io|top_mem|top_time|totaldown|totalup|trashed_mails|tztime|gid_name|uid_name|unflagged_mails|unforwarded_mails|unreplied_mails|unseen_mails|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|user_names|user_number|user_terms|user_times|user_time|utime|voffset|voltage_mv|voltage_v|weather|wireless_ap|wireless_bitrate|wireless_essid|wireless_link_bar|wireless_link_qual|wireless_link_qual_max|wireless_link_qual_perc|wireless_mode|words|xmms2_album|xmms2_artist|xmms2_bar|xmms2_bitrate|xmms2_comment|xmms2_date|xmms2_duration|xmms2_elapsed|xmms2_genre|xmms2_id|xmms2_percent|xmms2_playlist|xmms2_size|xmms2_smart|xmms2_status|xmms2_timesplayed|xmms2_title|xmms2_tracknr|xmms2_url)\b"
+
+color brightblue "\$\{?[0-9A-Z_!@#$*?-]+\}?"
+color cyan "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color brightred "^TEXT$"
diff --git a/syntax_files/csharp.micro b/syntax_files/csharp.micro
new file mode 100644
index 00000000..ef9f2c58
--- /dev/null
+++ b/syntax_files/csharp.micro
@@ -0,0 +1,26 @@
+syntax "C#" "\.cs$"
+
+# Class
+color brightmagenta "class +[A-Za-z0-9]+ *((:) +[A-Za-z0-9.]+)?"
+
+# Annotation
+color magenta "@[A-Za-z]+"
+
+color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
+color green "\b(bool|byte|sbyte|char|decimal|double|float|IntPtr|int|uint|long|ulong|object|short|ushort|string|base|this|var|void)\b"
+color cyan "\b(alias|as|case|catch|checked|default|do|dynamic|else|finally|fixed|for|foreach|goto|if|is|lock|new|null|return|switch|throw|try|unchecked|while)\b"
+color cyan "\b(abstract|async|class|const|delegate|enum|event|explicit|extern|get|implicit|in|internal|interface|namespace|operator|out|override|params|partial|private|protected|public|readonly|ref|sealed|set|sizeof|stackalloc|static|struct|typeof|unsafe|using|value|virtual|volatile|yield)\b"
+# LINQ-only keywords (ones that cannot be used outside of a LINQ query - lots others can)
+color cyan "\b(from|where|select|group|info|orderby|join|let|in|on|equals|by|ascending|descending)\b"
+color brightred "\b(break|continue)\b"
+color brightcyan "\b(true|false)\b"
+color red "[-+/*=<>?:!~%&|]"
+color blue "\b([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\b"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color magenta "\\([btnfr]|'|\"|\\)"
+color magenta "\\u[A-Fa-f0-9]{4}"
+color brightblack "(^|[[:space:]])//.*"
+color brightblack "(?s)/\*.*?\*/"
+color brightwhite,cyan "TODO:?"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/css.micro b/syntax_files/css.micro
new file mode 100644
index 00000000..d1870d8e
--- /dev/null
+++ b/syntax_files/css.micro
@@ -0,0 +1,10 @@
+## Here is an example for css files.
+##
+
+syntax "CSS" "\.(css|scss)$"
+color brightred "."
+color brightyellow "(?s)\{.*?\}"
+color brightwhite "(?s):.*?[;^\{]"
+color brightblue ":active|:focus|:hover|:link|:visited|:link|:after|:before|$"
+color brightblue "(?s)\/\*.*?\*\/"
+color green ";|:|\{|\}"
diff --git a/syntax_files/cython.micro b/syntax_files/cython.micro
new file mode 100644
index 00000000..c32fc2e2
--- /dev/null
+++ b/syntax_files/cython.micro
@@ -0,0 +1,30 @@
+## Cython nanorc, based off of Python nanorc.
+##
+syntax "Cython" "\.pyx$" "\.pxd$" "\.pyi$"
+icolor brightred "def [ 0-9A-Z_]+"
+icolor brightred "cpdef [0-9A-Z_]+\(.*\):"
+icolor brightred "cdef cppclass [ 0-9A-Z_]+\(.*\):"
+
+
+
+# Python Keyword Color
+color green "\b(and|as|assert|class|def|DEF|del|elif|ELIF|else|ELSE|except|exec|finally|for|from|global|if|IF|import|in|is|lambda|map|not|or|pass|print|raise|try|while|with|yield)\b"
+color brightmagenta "\b(continue|break|return)\b"
+
+# Cython Keyword Color
+color green "\b(cdef|cimport|cpdef|cppclass|ctypedef|extern|include|namespace|property|struct)\b"
+color red "\b(bint|char|double|int|public|void|unsigned)\b"
+
+#Operator Color
+color yellow "[.:;,+*|=!\%]" "<" ">" "/" "-" "&"
+
+#Parenthetical Color
+color magenta "[(){}]" "\[" "\]"
+
+#String Color
+color cyan "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"
+color cyan "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
+color cyan "(?s)"""[^"].*?"""" "(?s)'''[^'].*?'''"
+
+# Comment Color
+color brightblue "#.*$"
diff --git a/syntax_files/d.micro b/syntax_files/d.micro
new file mode 100644
index 00000000..379d81a1
--- /dev/null
+++ b/syntax_files/d.micro
@@ -0,0 +1,99 @@
+## D syntax highlighting for GNU nano
+##
+## Author: Andrei Vinokurov
+## Based on D lexer specification (http://dlang.org/lex)
+
+syntax "D" "\.(d(i|d)?)$"
+
+## Operators and punctuation
+color green "(\*|/|%|\+|-|>>|<<|>>>|&|\^(\^)?|\||~)?="
+color green "\.\.(\.)?|!|\*|&|~|\(|\)|\[|\]|\\|/|\+|-|%|<|>|\?|:|;"
+
+## Octal integer literals are deprecated
+color ,red "(0[0-7_]*)(L[uU]?|[uU]L?)?"
+
+## Decimal integer literals
+color brightyellow "([0-9]|[1-9][0-9_]*)(L[uU]?|[uU]L?)?"
+
+## Binary integer literals
+color brightgreen "(0[bB][01_]*)(L[uU]?|[uU]L?)?"
+
+## Decimal float literals
+color brightblue "[0-9][0-9_]*\.([0-9][0-9_]*)([eE][+-]?([0-9][0-9_]*))?[fFL]?i?"
+color brightblue "[0-9][0-9_]*([eE][+-]?([0-9][0-9_]*))[fFL]?i?"
+color brightblue "[^.]\.([0-9][0-9_]*)([eE][+-]?([0-9][0-9_]*))?[fFL]?i?"
+color brightblue "[0-9][0-9_]*([fFL]?i|[fF])"
+
+## Hexadecimal integer literals
+color brightcyan "(0[xX]([0-9a-fA-F][0-9a-fA-F_]*|[0-9a-fA-F_]*[0-9a-fA-F]))(L[uU]?|[uU]L?)?"
+
+## Hexadecimal float literals
+color blue "0[xX]([0-9a-fA-F][0-9a-fA-F_]*|[0-9a-fA-F_]*[0-9a-fA-F])(\.[0-9a-fA-F][0-9a-fA-F_]*|[0-9a-fA-F_]*[0-9a-fA-F])?[pP][+-]?([0-9][0-9_]*)[fFL]?i?"
+color blue "0[xX]\.([0-9a-fA-F][0-9a-fA-F_]*|[0-9a-fA-F_]*[0-9a-fA-F])[pP][+-]?([0-9][0-9_]*)[fFL]?i?"
+
+
+## Character literals
+color brightmagenta "'([^\']|\\(['"?\abfnrtv]|x[[:xdigit:]]{2}|[0-7]{1,3}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8}|&.*;))'"
+
+## Keywords
+## a-e
+color brightwhite "\b(abstract|alias|align|asm|assert|auto|body|break|case|cast|catch|class|const|continue|debug|default|delegate|do|else|enum|export|extern)\b"
+## f-l
+color brightwhite "\b(false|final|finally|for|foreach|foreach_reverse|function|goto|if|immutable|import|in|inout|interface|invariant|is|lazy)\b"
+## m-r
+color brightwhite "\b(macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|ref|return)\b"
+## s-w
+color brightwhite "\b(scope|shared|static|struct|super|switch|synchronized|template|this|throw|true|try|typeid|typeof|union|unittest|version|while|with)\b"
+## __
+color brightwhite "\b(__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)\b"
+
+## Deprecated keywords
+color ,red "\b(delete|deprecated|typedef|volatile)\b"
+
+## Primitive types
+color cyan "\b(bool|byte|cdouble|cent|cfloat|char|creal|dchar|double|float|idouble|ifloat|int|ireal|long|real|short|ubyte|ucent|uint|ulong|ushort|void|wchar)\b"
+
+## Globally defined symbols
+color cyan "\b(string|wstring|dstring|size_t|ptrdiff_t)\b"
+
+## Special tokens
+color ,blue "\b(__DATE__|__EOF__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\b"
+
+
+## Special directives, etc.
+color magenta "\\s *#\\s *"
+
+## String literals
+## TODO: multiline backtick and doublequote string. (Unlikely possible at all with nano.)
+### DoubleQuotedString
+color yellow ""(\\.|[^"])*""
+
+### WysiwygString
+color yellow "(?s)r".*?""
+color yellow "`[^`]*`"
+
+### HexString
+color ,yellow "x"([[:space:]]*[[:xdigit:]][[:space:]]*[[:xdigit:]])*[[:space:]]*""
+
+### DelimitedString
+color yellow "q"\(.*\)""
+color yellow "q"\{.*\}""
+color yellow "q"\[.*\]""
+color yellow "q"<.*>""
+color yellow "(?s)q"[^({[<"][^"]*$.*?^[^"]+""
+color yellow "q"([^({[<"]).*\1""
+
+### TokenString
+### True token strings require nesting, so, again, they can't be implemented accurately here.
+### At the same time, the intended purpose of token strings makes it questionable to highlight them as strings at all.
+## color ,magenta "(?s)q\{.*?\}"
+
+## Comments
+## NB: true nested comments are impossible to implement with plain regex
+color brightblack "//.*"
+color brightblack "(?s)/\*.*?\*/"
+color brightblack "(?s)/\+.*?\+/"
+
+## Trailing whitespace
+color ,green "[[:space:]]+$"
+
diff --git a/syntax_files/dot.micro b/syntax_files/dot.micro
new file mode 100644
index 00000000..53853aa1
--- /dev/null
+++ b/syntax_files/dot.micro
@@ -0,0 +1,8 @@
+syntax "DOT" "\.(dot|gv)$"
+
+color cyan "\b(digraph|edge|graph|node|subgraph)\b"
+color magenta "\b(arrowhead|arrowsize|arrowtail|bgcolor|center|color|constraint|decorateP|dir|distortion|fillcolor|fontcolor|fontname|fontsize|headclip|headlabel|height|labelangle|labeldistance|labelfontcolor|labelfontname|labelfontsize|label|layers|layer|margin|mclimit|minlen|name|nodesep|nslimit|ordering|orientation|pagedir|page|peripheries|port_label_distance|rankdir|ranksep|rank|ratio|regular|rotate|samehead|sametail|shapefile|shape|sides|size|skew|style|tailclip|taillabel|URL|weight|width)\b"
+color red "=|->|--"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])//.*"
+color brightblack "(?s)/\*.*?\*/"
diff --git a/syntax_files/erb.micro b/syntax_files/erb.micro
new file mode 100644
index 00000000..ed35ffa6
--- /dev/null
+++ b/syntax_files/erb.micro
@@ -0,0 +1,24 @@
+## A HTML+Ruby set for Syntax Highlighting .erb files (Embedded RubyRails Views etc) ERB
+## (c) 2009, Georgios V. Michalakidis - g.michalakidis@computer.org
+## Licensed under the CC (Creative Commons) License.
+##
+## https://github.com/geomic/ERB-And-More-Code-Highlighting-for-nano
+
+syntax "ERB" "\.erb$" "\.rhtml$"
+color blue "(?s)<.*?>"
+color white "(?s)<%.*?%>"
+color red "&[^;[[:space:]]]*;"
+color yellow "\b(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\b"
+color brightblue "(\$|@|@@)?\b[A-Z]+[0-9A-Z_a-z]*"
+icolor magenta "([ ]|^):[0-9A-Z_]+\b"
+color brightyellow "\b(__FILE__|__LINE__)\b"
+color brightmagenta "!/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*"
+color brightblue "`[^`]*`" "%x\{[^}]*\}"
+color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
+color brightgreen "#\{[^}]*\}"
+color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
+color cyan "#[^{].*$" "#$"
+color brightcyan "##[^{].*$" "##$"
+color green "(?s)<<-?'?EOT'?.*?^EOT"
+color brightcyan "(XXX|TODO|FIXME|\?\?\?)"
+
diff --git a/syntax_files/fish.micro b/syntax_files/fish.micro
new file mode 100644
index 00000000..bf2d52cd
--- /dev/null
+++ b/syntax_files/fish.micro
@@ -0,0 +1,14 @@
+## Here is an example for Fish shell scripts.
+##
+syntax "Fish" "\.fish$"
+icolor brightgreen "^[0-9A-Z_]+\(\)"
+color green "\b(alias|begin|break|case|continue|contains|else|end|for|function|if|math|return|set|switch|test|while)\b"
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color green "\b(and|isatty|not|or|in)\b"
+color yellow "--[a-z-]+"
+color brightmagenta "\ -[a-z]+"
+color brightblue "\b(bg|bind|block|breakpoint|builtin|cd|command|commandline|complete|dirh|dirs|echo|emit|eval|exec|exit|fg|fish|fish_config|fish_ident|fish_pager|fish_prompt|fish_right_prompt|fish_update_completions|fishd|funced|funcsave|functions|help|history|jobs|mimedb|nextd|open|popd|prevd|psub|pushd|pwd|random|read|set_color|status|trap|type|ulimit|umask|vared)\b"
+icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
+color cyan "(^|[[:space:]])#.*$"
+color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
+color ,green "[[:space:]]+$"
diff --git a/syntax_files/fortran.micro b/syntax_files/fortran.micro
new file mode 100644
index 00000000..fde44671
--- /dev/null
+++ b/syntax_files/fortran.micro
@@ -0,0 +1,50 @@
+## Here is an example for Fortran 90/95
+
+syntax "Fortran" "\.([Ff]|[Ff]90|[Ff]95|[Ff][Oo][Rr])$"
+
+#color red "\b[A-Z_]a[0-9A-Z_]+\b"
+color red "\b[0-9]+\b"
+
+icolor green "\b(action|advance|all|allocatable|allocated|any|apostrophe)\b"
+icolor green "\b(append|asis|assign|assignment|associated|character|common)\b"
+icolor green "\b(complex|data|default|delim|dimension|double precision)\b"
+icolor green "\b(elemental|epsilon|external|file|fmt|form|format|huge)\b"
+icolor green "\b(implicit|include|index|inquire|integer|intent|interface)\b"
+icolor green "\b(intrinsic|iostat|kind|logical|module|none|null|only)\b"
+icolor green "\b(operator|optional|pack|parameter|pointer|position|private)\b"
+icolor green "\b(program|public|real|recl|recursive|selected_int_kind)\b"
+icolor green "\b(selected_real_kind|subroutine|status)\b"
+
+icolor cyan "\b(abs|achar|adjustl|adjustr|allocate|bit_size|call|char)\b"
+icolor cyan "\b(close|contains|count|cpu_time|cshift|date_and_time)\b"
+icolor cyan "\b(deallocate|digits|dot_product|eor|eoshift|function|iachar)\b"
+icolor cyan "\b(iand|ibclr|ibits|ibset|ichar|ieor|iolength|ior|ishft|ishftc)\b"
+icolor cyan "\b(lbound|len|len_trim|matmul|maxexponent|maxloc|maxval|merge)\b"
+icolor cyan "\b(minexponent|minloc|minval|mvbits|namelist|nearest|nullify)\b"
+icolor cyan "\b(open|pad|present|print|product|pure|quote|radix)\b"
+icolor cyan "\b(random_number|random_seed|range|read|readwrite|replace)\b"
+icolor cyan "\b(reshape|rewind|save|scan|sequence|shape|sign|size|spacing)\b"
+icolor cyan "\b(spread|sum|system_clock|target|transfer|transpose|trim)\b"
+icolor cyan "\b(ubound|unpack|verify|write|tiny|type|use|yes)\b"
+
+icolor yellow "\b(.and.|case|do|else|else?if|else?where|end|end?do|end?if)\b"
+icolor yellow "\b(end?select|.eqv.|forall|if|lge|lgt|lle|llt|.neqv.|.not.)\b"
+icolor yellow "\b(.or.|repeat|select case|then|where|while)\b"
+
+icolor magenta "\b(continue|cycle|exit|go?to|result|return)\b"
+
+#Operator Color
+color yellow "[.:;,+*|=!\%]" "<" ">" "/" "-" "&"
+
+#Parenthetical Color
+color magenta "[(){}]" "\[" "\]"
+
+# Add preprocessor commands.
+color brightcyan "^[[:space:]]*#[[:space:]]*(define|include|(un|ifn?)def|endif|el(if|se)|if|warning|error)"
+
+## String highlighting.
+icolor cyan "<[^= ]*>" ""(\\.|[^"])*""
+icolor cyan "<[^= ]*>" "'(\\.|[^"])*'"
+
+## Comment highlighting
+icolor brightred "!.*$" "(^[Cc]| [Cc]) .*$"
diff --git a/syntax_files/gentoo.micro b/syntax_files/gentoo.micro
new file mode 100644
index 00000000..2a3a9bd4
--- /dev/null
+++ b/syntax_files/gentoo.micro
@@ -0,0 +1,50 @@
+## Here is an example for ebuilds/eclasses
+##
+syntax "Ebuild" "\.e(build|class)$"
+## All the standard portage functions
+color brightgreen "^src_(unpack|compile|install|test)" "^pkg_(config|nofetch|setup|(pre|post)(inst|rm))"
+## Highlight bash related syntax
+color green "\b(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while|continue|break)\b"
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color green "-(e|d|f|r|g|u|w|x|L)\b"
+color green "-(eq|ne|gt|lt|ge|le|s|n|z)\b"
+## Highlight variables ... official portage ones in red, all others in bright red
+color brightred "\$\{?[a-zA-Z_0-9]+\}?"
+color red "\b(ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|FILESDIR|WORKDIR|(P|R)?DEPEND|PROVIDE|DISTDIR|RESTRICT|USERLAND)\b"
+color red "\b(S|D|T|PV|PF|P|PN|A)\b" "\bC(XX)?FLAGS\b" "\bLDFLAGS\b" "\bC(HOST|TARGET|BUILD)\b"
+## Highlight portage commands
+color magenta "\buse(_(with|enable))?\b [!a-zA-Z0-9_+ -]*" "inherit.*"
+color brightblue "\be(begin|end|conf|install|make|warn|infon?|error|log|patch|new(group|user))\b"
+color brightblue "\bdie\b" "\buse(_(with|enable))?\b" "\binherit\b" "\bhas\b" "\b(has|best)_version\b" "\bunpack\b"
+color brightblue "\b(do|new)(ins|s?bin|doc|lib(\.so|\.a)|man|info|exe|initd|confd|envd|pam|menu|icon)\b"
+color brightblue "\bdo(python|sed|dir|hard|sym|html|jar|mo)\b" "\bkeepdir\b"
+color brightblue "prepall(docs|info|man|strip)" "prep(info|lib|lib\.(so|a)|man|strip)"
+color brightblue "\b(doc|ins|exe)into\b" "\bf(owners|perms)\b" "\b(exe|ins|dir)opts\b"
+## Highlight common commands used in ebuilds
+color blue "\bmake\b" "\b(cat|cd|chmod|chown|cp|echo|env|export|grep|let|ln|mkdir|mv|rm|sed|set|tar|touch|unset)\b"
+## Highlight comments (doesnt work that well)
+color yellow "#.*$"
+## Highlight strings (doesnt work that well)
+color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'"
+## Trailing space is bad!
+color ,green "[[:space:]]+$"
+
+## Here is an example for Portage control files
+##
+syntax "etc-portage" "\.(keywords|mask|unmask|use)$"
+## Base text:
+color green "^.+$"
+## Use flags:
+color brightred "[[:space:]]+\+?[a-zA-Z0-9_-]+"
+color brightblue "[[:space:]]+-[a-zA-Z0-9_-]+"
+## Likely version numbers:
+color magenta "-[[:digit:]].*([[:space:]]|$)"
+## Accepted arches:
+color white "[~-]?\b(alpha|amd64|arm|hppa|ia64|mips|ppc|ppc64|s390|sh|sparc|x86|x86-fbsd)\b"
+color white "[[:space:]][~-]?\*"
+## Categories:
+color cyan "^[[:space:]]*.*/"
+## Masking regulators:
+color brightmagenta "^[[:space:]]*(=|~|<|<=|=<|>|>=|=>)"
+## Comments:
+color yellow "#.*$"
diff --git a/syntax_files/git.micro b/syntax_files/git.micro
new file mode 100644
index 00000000..857e0320
--- /dev/null
+++ b/syntax_files/git.micro
@@ -0,0 +1,80 @@
+syntax "git-config" "git(config|modules)$|\.git/config$"
+
+color brightcyan "\b(true|false)\b"
+color cyan "^[[:space:]]*[^=]*="
+color brightmagenta "^[[:space:]]*\[.*\]$"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " +"
+
+# This code is free software; you can redistribute it and/or modify it under
+# the terms of the new BSD License.
+#
+# Copyright (c) 2010, Sebastian Staudt
+
+# A nano configuration file to enable syntax highlighting of some Git specific
+# files with the GNU nano text editor (http://www.nano-editor.org)
+#
+syntax "git-commit" "COMMIT_EDITMSG|TAG_EDITMSG"
+
+# Commit message
+color yellow ".*"
+
+# Comments
+color brightblack "^#.*"
+
+# Files changes
+color white "#[[:space:]](deleted|modified|new file|renamed):[[:space:]].*"
+color red "#[[:space:]]deleted:"
+color green "#[[:space:]]modified:"
+color brightgreen "#[[:space:]]new file:"
+color brightblue "#[[:space:]]renamed:"
+
+# Untracked filenames
+color black "^# [^/?*:;{}\\]+\.[^/?*:;{}\\]+$"
+
+color brightmagenta "^#[[:space:]]Changes.*[:]"
+color brightred "^#[[:space:]]Your branch and '[^']+"
+color brightblack "^#[[:space:]]Your branch and '"
+color brightwhite "^#[[:space:]]On branch [^ ]+"
+color brightblack "^#[[:space:]]On branch"
+
+# Recolor hash symbols
+
+# Recolor hash symbols
+color brightblack "#"
+
+# Trailing spaces (+LINT is not ok, git uses tabs)
+color ,red "[[:space:]]+$"
+
+
+# This syntax format is used for interactive rebasing
+syntax "git-rebase-todo" "git-rebase-todo"
+
+# Default
+color yellow ".*"
+
+# Comments
+color brightblack "^#.*"
+
+# Rebase commands
+color green "^(e|edit) [0-9a-f]{7,40}"
+color green "^# (e, edit)"
+color brightgreen "^(f|fixup) [0-9a-f]{7,40}"
+color brightgreen "^# (f, fixup)"
+color brightwhite "^(p|pick) [0-9a-f]{7,40}"
+color brightwhite "^# (p, pick)"
+color blue "^(r|reword) [0-9a-f]{7,40}"
+color blue "^# (r, reword)"
+color brightred "^(s|squash) [0-9a-f]{7,40}"
+color brightred "^# (s, squash)"
+color yellow "^(x|exec) [^ ]+ [0-9a-f]{7,40}"
+color yellow "^# (x, exec)"
+
+# Recolor hash symbols
+color brightblack "#"
+
+# Commit IDs
+color brightblue "[0-9a-f]{7,40}"
+
diff --git a/syntax_files/glsl.micro b/syntax_files/glsl.micro
new file mode 100644
index 00000000..fdf31b1d
--- /dev/null
+++ b/syntax_files/glsl.micro
@@ -0,0 +1,15 @@
+syntax "GLSL" "\.(frag|vert|fp|vp|glsl)$"
+
+color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
+color green "\b(void|bool|bvec2|bvec3|bvec4|int|ivec2|ivec3|ivec4|float|vec2|vec3|vec4|mat2|mat3|mat4|struct|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler1DShadow|sampler2DShadow)\b"
+color green "\bgl_(DepthRangeParameters|PointParameters|MaterialParameters|LightSourceParameters|LightModelParameters|LightModelProducts|LightProducts|FogParameters)\b"
+color cyan "\b(const|attribute|varying|uniform|in|out|inout|if|else|return|discard|while|for|do)\b"
+color brightred "\b(break|continue)\b"
+color brightcyan "\b(true|false)\b"
+color red "[-+/*=<>?:!~%&|^]"
+color blue "\b([0-9]+|0x[0-9a-fA-F]*)\b"
+color brightblack "(^|[[:space:]])//.*"
+color brightblack "(?s)/\*.*?\*/"
+color brightwhite,cyan "TODO:?"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/go.micro b/syntax_files/go.micro
new file mode 100644
index 00000000..c0759478
--- /dev/null
+++ b/syntax_files/go.micro
@@ -0,0 +1,22 @@
+syntax "Go" "\.go$"
+
+color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
+color brightblue "\b(append|cap|close|complex|copy|delete|imag|len)\b"
+color brightblue "\b(make|new|panic|print|println|protect|real|recover)\b"
+color green "\b(u?int(8|16|32|64)?|float(32|64)|complex(64|128))\b"
+color green "\b(uintptr|byte|rune|string|interface|bool|map|chan|error)\b"
+color cyan "\b(package|import|const|var|type|struct|func|go|defer|nil|iota)\b"
+color cyan "\b(for|range|if|else|case|default|switch|return)\b"
+color brightred "\b(go|goto|break|continue)\b"
+color brightcyan "\b(true|false)\b"
+color red "[-+/*=<>!~%&|^]|:="
+color blue "\b([0-9]+|0x[0-9a-fA-F]*)\b|'.'"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color magenta "\\[abfnrtv'\"\\]"
+color magenta "\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
+color yellow "`[^`]*`"
+color brightblack "(^|[[:space:]])//.*"
+color green "(?s)/\*.*?\*/"
+color brightwhite,cyan "TODO:?"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/groff.micro b/syntax_files/groff.micro
new file mode 100644
index 00000000..26761041
--- /dev/null
+++ b/syntax_files/groff.micro
@@ -0,0 +1,24 @@
+## Here is an example for groff.
+##
+syntax "Groff" "\.m[ems]$" "\.rof" "\.tmac$" "^tmac."
+## The argument of .ds or .nr
+color cyan "^\.(ds|nr) [^[[:space:]]]*"
+## Single character escapes
+color brightmagenta "\\."
+## Highlight the argument of \f or \s in the same color
+color brightmagenta "\\f." "\\f\(.." "\\s(\+|\-)?[0-9]"
+## Newlines
+color cyan "(\\|\\\\)n(.|\(..)"
+color cyan "(?s)(\\|\\\\)n\[.*?]"
+## Requests
+color brightgreen "^\.[[:space:]]*[^[[:space:]]]*"
+## Comments
+color yellow "^\.\\".*$"
+## Strings
+color green "(\\|\\\\)\*(.|\(..)"
+color green "(?s)(\\|\\\\)\*\[.*?]"
+## Characters
+color brightred "\\\(.."
+color brightred "(?s)\\\[.*?]"
+## Macro arguments
+color brightcyan "\\\\\$[1-9]"
diff --git a/syntax_files/haml.micro b/syntax_files/haml.micro
new file mode 100644
index 00000000..5172d556
--- /dev/null
+++ b/syntax_files/haml.micro
@@ -0,0 +1,16 @@
+syntax "Haml" "\.haml$"
+
+color cyan "-|="
+color white "->|=>"
+icolor cyan "([ ]|^)%[0-9A-Z_]+\b"
+icolor magenta ":[0-9A-Z_]+\b"
+icolor yellow "\.[A-Z_]+\b"
+## Double quote & single quote
+color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
+color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
+## Vars
+color brightgreen "#\{[^}]*\}"
+color brightblue "(@|@@)[0-9A-Z_a-z]+"
+## Comments
+color brightcyan "#[^{].*$" "#$"
+
diff --git a/syntax_files/haskell.micro b/syntax_files/haskell.micro
new file mode 100644
index 00000000..f6e1c6b6
--- /dev/null
+++ b/syntax_files/haskell.micro
@@ -0,0 +1,31 @@
+syntax "Haskell" "\.hs$"
+
+## Keywords
+color red "[ ](as|case|of|class|data|default|deriving|do|forall|foreign|hiding|if|then|else|import|infix|infixl|infixr|instance|let|in|mdo|module|newtype|qualified|type|where)[ ]"
+color red "(^data|^foreign|^import|^infix|^infixl|^infixr|^instance|^module|^newtype|^type)[ ]"
+color red "[ ](as$|case$|of$|class$|data$|default$|deriving$|do$|forall$|foreign$|hiding$|if$|then$|else$|import$|infix$|infixl$|infixr$|instance$|let$|in$|mdo$|module$|newtype$|qualified$|type$|where$)"
+
+## Various symbols
+color cyan "(\||@|!|:|_|~|=|\\|;|\(\)|,|\[|\]|\{|\})"
+
+## Operators
+color magenta "(==|/=|&&|\|\||<|>|<=|>=)"
+
+## Various symbols
+color cyan "(->|<-)"
+color magenta "\.|\$"
+
+## Data constructors
+color magenta "(True|False|Nothing|Just|Left|Right|LT|EQ|GT)"
+
+## Data classes
+color magenta "[ ](Read|Show|Enum|Eq|Ord|Data|Bounded|Typeable|Num|Real|Fractional|Integral|RealFrac|Floating|RealFloat|Monad|MonadPlus|Functor)"
+
+## Strings
+color yellow ""[^\"]*""
+
+## Comments
+color green "--.*"
+color green "(?s)\{-.*?-\}"
+
+color brightred "undefined"
diff --git a/syntax_files/html.micro b/syntax_files/html.micro
new file mode 100644
index 00000000..10ea984c
--- /dev/null
+++ b/syntax_files/html.micro
@@ -0,0 +1,7 @@
+## Here is a short improved example for HTML.
+##
+syntax "HTML" "\.htm[l]?$"
+color brightblue "(?s)<.*?>"
+color red "&[^;[[:space:]]]*;"
+color yellow ""[^"]*"|qq\|.*\|"
+color red "(alt|bgcolor|height|href|label|longdesc|name|onclick|onfocus|onload|onmouseover|size|span|src|style|target|type|value|width)="
diff --git a/syntax_files/ini.micro b/syntax_files/ini.micro
new file mode 100644
index 00000000..d1bba37b
--- /dev/null
+++ b/syntax_files/ini.micro
@@ -0,0 +1,11 @@
+syntax "INI" "\.(ini|desktop|lfl|override)$" "(mimeapps\.list|pinforc|setup\.cfg)$" "weechat/.+\.conf$"
+header "^\[[A-Za-z]+\]$"
+
+color brightcyan "\b(true|false)\b"
+color cyan "^[[:space:]]*[^=]*="
+color brightmagenta "^[[:space:]]*\[.*\]$"
+color red "[=;]"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/inputrc.micro b/syntax_files/inputrc.micro
new file mode 100644
index 00000000..7349adec
--- /dev/null
+++ b/syntax_files/inputrc.micro
@@ -0,0 +1,10 @@
+syntax "Inputrc" "inputrc$"
+
+color red "\b(off|none)\b"
+color green "\bon\b"
+color brightblue "\bset|\$include\b"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color magenta "\\.?"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/java.micro b/syntax_files/java.micro
new file mode 100644
index 00000000..03ccb3a6
--- /dev/null
+++ b/syntax_files/java.micro
@@ -0,0 +1,12 @@
+## Here is an example for Java.
+##
+syntax "Java" "\.java$"
+color green "\b(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\b"
+color red "\b(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\b"
+color cyan "\b(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\b"
+color red ""[^"]*""
+color yellow "\b(true|false|null)\b"
+color blue "//.*"
+color blue "(?s)/\*.*?\*/"
+color brightblue "(?s)/\*\*.*?\*/"
+color ,green "[[:space:]]+$"
diff --git a/syntax_files/javascript.micro b/syntax_files/javascript.micro
new file mode 100644
index 00000000..84cd31d1
--- /dev/null
+++ b/syntax_files/javascript.micro
@@ -0,0 +1,22 @@
+syntax "JavaScript" "\.js$"
+
+color blue "\b[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\b"
+color blue "\b[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
+color blue "\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
+color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
+color cyan "\b(break|case|catch|continue|default|delete|do|else|finally)\b"
+color cyan "\b(for|function|get|if|in|instanceof|new|return|set|switch)\b"
+color cyan "\b(switch|this|throw|try|typeof|var|void|while|with)\b"
+color cyan "\b(null|undefined|NaN)\b"
+color brightcyan "\b(true|false)\b"
+color green "\b(Array|Boolean|Date|Enumerator|Error|Function|Math)\b"
+color green "\b(Number|Object|RegExp|String)\b"
+color red "[-+/*=<>!~%?:&|]"
+color magenta "/[^*]([^/]|(\\/))*[^\\]/[gim]*"
+color magenta "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]"
+color brightblack "(^|[[:space:]])//.*"
+color brightblack "/\*.+\*/"
+color brightwhite,cyan "TODO:?"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/js.micro b/syntax_files/js.micro
new file mode 100644
index 00000000..239af5f6
--- /dev/null
+++ b/syntax_files/js.micro
@@ -0,0 +1,46 @@
+### all *js files ( e.g. Firefox user.js, prefs.js )
+
+## Old version
+
+#syntax "JavaScript" "(\.|/|)js$"
+#color green "//.*$" "(?s)\/\*.*?\*\/"
+#color blue "'(\\.|[^'])*'"
+#color red ""(\\.|[^\"])*""
+#color brightgreen "\b(true)\b"
+#color brightred "\b(false)\b" "http\:\/\/.*$"
+#color brightmagenta "[0-9](\\.|[^\"])*)"
+
+## New updated taken from http://wiki.linuxhelp.net/index.php/Nano_Syntax_Highlighting
+
+syntax "JavaScript" "\.(js)$"
+
+## Default
+color white "^.+$"
+
+## Decimal, cotal and hexadecimal numbers
+color yellow "\b[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\b"
+
+## Floating point number with at least one digit before decimal point
+color yellow "\b[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
+color yellow "\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
+
+## Keywords
+color green "\b(break|case|catch|continue|default|delete|do|else|finally)\b"
+color green "\b(for|function|if|in|instanceof|new|null|return|switch)\b"
+color green "\b(switch|this|throw|try|typeof|undefined|var|void|while|with)\b"
+
+## Type specifiers
+color red "\b(Array|Boolean|Date|Enumerator|Error|Function|Math)\b"
+color red "\b(Number|Object|RegExp|String)\b"
+color red "\b(true|false)\b"
+
+## String
+color brightyellow "L?\"(\\"|[^"])*\""
+color brightyellow "L?'(\'|[^'])*'"
+
+## Escapes
+color red "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]"
+
+## Comments
+color brightblue "(?s)/\*.*?\*/"
+color brightblue "//.*$"
diff --git a/syntax_files/json.micro b/syntax_files/json.micro
new file mode 100644
index 00000000..6515870a
--- /dev/null
+++ b/syntax_files/json.micro
@@ -0,0 +1,11 @@
+syntax "JSON" "\.json$"
+header "^\{$"
+
+color blue "\b[-]?[1-9][0-9]*([Ee][+-]?[0-9]+)?\b" "\b[-]?[0](\.[0-9]+)?\b"
+color cyan "\bnull\b"
+color brightcyan "\b(true|false)\b"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightyellow "\"(\\"|[^"])*\"[[:space:]]*:" "'(\'|[^'])*'[[:space:]]*:"
+color magenta "\\u[0-9a-fA-F]{4}|\\[bfnrt'"/\\]"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/keymap.micro b/syntax_files/keymap.micro
new file mode 100644
index 00000000..dd7fd816
--- /dev/null
+++ b/syntax_files/keymap.micro
@@ -0,0 +1,10 @@
+syntax "Keymap" "\.(k|key)?map$|Xmodmap$"
+
+color cyan "\b(add|clear|compose|keycode|keymaps|keysym|remove|string)\b"
+color cyan "\b(control|alt|shift)\b"
+color blue "\b[0-9]+\b"
+color red "="
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "^!.*$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/kickstart.micro b/syntax_files/kickstart.micro
new file mode 100644
index 00000000..ecb21bd2
--- /dev/null
+++ b/syntax_files/kickstart.micro
@@ -0,0 +1,15 @@
+syntax "KickStart" "\.ks$" "\.kickstart$"
+
+color brightmagenta "%[a-z]+"
+color cyan "^[[:space:]]*(install|cdrom|text|graphical|volgroup|logvol|reboot|timezone|lang|keyboard|authconfig|firstboot|rootpw|user|firewall|selinux|repo|part|partition|clearpart|bootloader)"
+color cyan "--(name|mirrorlist|baseurl|utc)(=|\b)"
+color brightyellow "\$(releasever|basearch)\b"
+
+# Packages and groups
+color brightblack "^@[A-Za-z][A-Za-z-]*"
+color brightred "^-@[a-zA-Z0-9*-]+"
+color red "^-[a-zA-Z0-9*-]+"
+
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/ledger.micro b/syntax_files/ledger.micro
new file mode 100644
index 00000000..8d07329d
--- /dev/null
+++ b/syntax_files/ledger.micro
@@ -0,0 +1,10 @@
+syntax "Ledger" "(^|\.|/)ledger|ldgr|beancount|bnct$"
+
+color brightmagenta "^([0-9]{4}(/|-)[0-9]{2}(/|-)[0-9]{2}|[=~]) .*"
+color blue "^[0-9]{4}(/|-)[0-9]{2}(/|-)[0-9]{2}"
+color brightyellow "^~ .*"
+color brightblue "^= .*"
+color cyan "^[[:space:]]+(![[:space:]]+)?\(?[A-Za-z ]+(:[A-Za-z ]+)*\)?"
+color cyan "^[[:space:]]+(![[:space:]]+)?\(?[A-Za-z_-]+(:[A-Za-z_-]+)*\)?"
+color red "[*!]"
+color brightblack "^[[:space:]]*;.*"
diff --git a/syntax_files/lisp.micro b/syntax_files/lisp.micro
new file mode 100644
index 00000000..73198194
--- /dev/null
+++ b/syntax_files/lisp.micro
@@ -0,0 +1,13 @@
+syntax "Lisp" "(emacs|zile)$" "\.(el|li?sp|scm|ss)$"
+
+color brightblue "\([a-z-]+"
+color red "\(([-+*/<>]|<=|>=)|'"
+color blue "\b[0-9]+\b"
+icolor cyan "\bnil\b"
+color brightcyan "\b[tT]\b"
+color yellow "\"(\\.|[^"])*\""
+color magenta "'[A-Za-z][A-Za-z0-9_-]+"
+color magenta "\\.?"
+color brightblack "(^|[[:space:]]);.*"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/lua.micro b/syntax_files/lua.micro
new file mode 100644
index 00000000..ce9b49c3
--- /dev/null
+++ b/syntax_files/lua.micro
@@ -0,0 +1,73 @@
+##############################################################################
+#
+# Lua syntax highlighting for Nano.
+#
+# Author: Matthew Wild
+# License: GPL 2 or later
+#
+# Version: 2007-06-06
+#
+# Notes: Originally based on Ruby syntax rc by Josef 'Jupp' Schugt
+##############################################################################
+
+
+# Automatically use for '.lua' files
+syntax "Lua" ".*\.lua$"
+
+# General
+color brightwhite ".+"
+
+# Operators
+color brightyellow ":|\*\*|\*|/|%|\+|-|\^|>|>=|<|<=|~=|=|\.\.|\b(not|and|or)\b"
+
+# Statements
+color brightblue "\b(do|end|while|repeat|until|if|elseif|then|else|for|in|function|local|return)\b"
+
+# Keywords
+color brightyellow "\b(debug|string|math|table|io|coroutine|os|utf8|bit32)\b\."
+color brightyellow "\b(_ENV|_G|_VERSION|assert|collectgarbage|dofile|error|getfenv|getmetatable|ipairs|load|loadfile|module|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|unpack|xpcall)\s*\("
+
+# Standard library
+color brightyellow "io\.\b(close|flush|input|lines|open|output|popen|read|tmpfile|type|write)\b"
+color brightyellow "math\.\b(abs|acos|asin|atan2|atan|ceil|cosh|cos|deg|exp|floor|fmod|frexp|huge|ldexp|log10|log|max|maxinteger|min|mininteger|modf|pi|pow|rad|random|randomseed|sinh|sqrt|tan|tointeger|type|ult)\b"
+color brightyellow "os\.\b(clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)\b"
+color brightyellow "package\.\b(config|cpath|loaded|loadlib|path|preload|seeall|searchers|searchpath)\b"
+color brightyellow "string\.\b(byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)\b"
+color brightyellow "table\.\b(concat|insert|maxn|move|pack|remove|sort|unpack)\b"
+color brightyellow "utf8\.\b(char|charpattern|codes|codepoint|len|offset)\b"
+color brightyellow "coroutine\.\b(create|isyieldable|resume|running|status|wrap|yield)\b"
+color brightyellow "debug\.\b(debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|getuservalue|setfenv|sethook|setlocal|setmetatable|setupvalue|setuservalue|traceback|upvalueid|upvaluejoin)\b"
+color brightyellow "bit32\.\b(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)\b"
+
+# File handle methods
+color brightyellow "\:\b(close|flush|lines|read|seek|setvbuf|write)\b"
+
+# false, nil, true
+color brightmagenta "\b(false|nil|true)\b"
+
+# External files
+color brightgreen "(\b(dofile|require|include)|%q|%!|%Q|%r|%x)\b"
+
+# Numbers
+color red "\b([0-9]+)\b"
+
+# Symbols
+color brightmagenta "(\(|\)|\[|\]|\{|\})"
+
+# Strings
+color red "\"(\\.|[^\\\"])*\"|'(\\.|[^\\'])*'"
+
+# Multiline strings
+color red "(?s)\s*\[\[.*?\]\]"
+
+# Escapes
+color red "\\[0-7][0-7][0-7]|\\x[0-9a-fA-F][0-9a-fA-F]|\\[abefnrs]|(\\c|\\C-|\\M-|\\M-\\C-)."
+
+# Shebang
+color brightcyan "^#!.*"
+
+# Simple comments
+color green "\-\-.*$"
+
+# Multiline comments
+color green "(?s)\s*\-\-\s*\[\[.*?\]\]"
diff --git a/syntax_files/makefile.micro b/syntax_files/makefile.micro
new file mode 100644
index 00000000..19c55bf3
--- /dev/null
+++ b/syntax_files/makefile.micro
@@ -0,0 +1,22 @@
+syntax "Makefile" "([Mm]akefile|\.ma?k)$"
+header "^#!.*/(env +)?[bg]?make( |$)"
+
+color cyan "\b(ifeq|ifdef|ifneq|ifndef|else|endif)\b"
+color cyan "^(export|include|override)\b"
+color brightmagenta "^[^:= ]+:"
+color red "[=,%]" "\+=|\?=|:=|&&|\|\|"
+color brightblue "\$\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]"
+color brightblue "\$\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]"
+color brightblue "\$\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]"
+color brightblue "\$\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]"
+color brightblue "\$\((value|warning|wildcard|word|wordlist|words)[[:space:]]"
+color black "[()$]"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightyellow "\$+(\{[^} ]+\}|\([^) ]+\))"
+color brightyellow "\$[@^<*?%|+]|\$\([@^<*?%+-][DF]\)"
+color magenta "\$\$|\\.?"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color brightblack "^ @#.*"
+
+# Show trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/syntax_files/man.micro b/syntax_files/man.micro
new file mode 100644
index 00000000..59334be6
--- /dev/null
+++ b/syntax_files/man.micro
@@ -0,0 +1,9 @@
+## Here is an example for manpages.
+##
+syntax "Man" "\.[1-9]x?$"
+color green "\.(S|T)H.*$"
+color brightgreen "\.(S|T)H" "\.TP"
+color brightred "\.(BR?|I[PR]?).*$"
+color brightblue "\.(BR?|I[PR]?|PP)"
+color brightwhite "\\f[BIPR]"
+color yellow "\.(br|DS|RS|RE|PD)"
diff --git a/syntax_files/markdown.micro b/syntax_files/markdown.micro
new file mode 100644
index 00000000..3192eb87
--- /dev/null
+++ b/syntax_files/markdown.micro
@@ -0,0 +1,47 @@
+syntax "Markdown" "\.(md|mkd|mkdn|markdown)$"
+
+# Tables (Github extension)
+color cyan ".*[ :]\|[ :].*"
+
+# quotes
+color brightblack "^>.*"
+
+# Emphasis
+color green "(^|[[:space:]])(_[^ ][^_]*_|\*[^ ][^*]*\*)"
+
+# Strong emphasis
+color brightgreen "(^|[[:space:]])(__[^ ][^_]*__|\*\*[^ ][^*]*\*\*)"
+
+# strike-through
+color red "(^|[[:space:]])~~[^ ][^~]*~~"
+
+# horizontal rules
+color brightmagenta "^(---+|===+|___+|\*\*\*+)\s*$"
+
+# headlines
+color brightmagenta "^#{1,6}.*"
+
+# lists
+color blue "^[[:space:]]*[\*+-] |^[[:space:]]*[0-9]+\. "
+
+# leading whitespace
+color black "^[[:space:]]+"
+
+# misc
+color magenta "\(([CcRr]|[Tt][Mm])\)" "\.{3}" "(^|[[:space:]])\-\-($|[[:space:]])"
+
+# links
+color brightblue "\[[^]]+\]"
+color brightblue "\[([^][]|\[[^]]*\])*\]\([^)]+\)"
+
+# images
+color magenta "!\[[^][]*\](\([^)]+\)|\[[^]]+\])"
+
+# urls
+color brightyellow "https?://[^ )>]+"
+
+# code
+color yellow "`[^`]*`|^ {4}[^-+*].*"
+# code blocks
+color yellow "(?s)^```[^$].*?^```$"
+color yellow "^```$"
diff --git a/syntax_files/mpdconf.micro b/syntax_files/mpdconf.micro
new file mode 100644
index 00000000..2af8fafd
--- /dev/null
+++ b/syntax_files/mpdconf.micro
@@ -0,0 +1,9 @@
+syntax "MPD" "mpd\.conf$"
+
+color cyan "\b(user|group|bind_to_address|host|port|plugin|name|type)\b"
+color cyan "\b((music|playlist)_directory|(db|log|state|pid|sticker)_file)\b"
+color brightmagenta "^(input|audio_output|decoder)[[:space:]]*\{|\}"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/nanorc.micro b/syntax_files/nanorc.micro
new file mode 100644
index 00000000..0e2ce492
--- /dev/null
+++ b/syntax_files/nanorc.micro
@@ -0,0 +1,16 @@
+## Here is an example for nanorc files.
+##
+syntax "Nanorc" "\.?nanorc$"
+## Possible errors and parameters
+icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$"
+## Keywords
+icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|boldtext|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|preserve|punct)\b" "^[[:space:]]*(set|unset)[[:space:]]+(quickblank|quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|undo|view|whitespace|wordbounds)\b"
+icolor green "^[[:space:]]*(set|unset|include|syntax|header)\b"
+## Colors
+icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\b"
+icolor magenta "^[[:space:]]*i?color\b" "\b(start|end)="
+## Strings
+icolor white ""(\\.|[^"])*""
+## Comments
+icolor brightblue "^[[:space:]]*#.*$"
+icolor cyan "^[[:space:]]*##.*$"
diff --git a/syntax_files/nginx.micro b/syntax_files/nginx.micro
new file mode 100644
index 00000000..f574de37
--- /dev/null
+++ b/syntax_files/nginx.micro
@@ -0,0 +1,13 @@
+syntax "Nginx" "nginx.*\.conf$" "\.nginx$"
+header "^(server|upstream)[a-z ]*\{$"
+
+color brightmagenta "\b(events|server|http|location|upstream)[[:space:]]*\{"
+color cyan "(^|[[:space:]{;])(access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth_basic|auth_basic_user_file|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|default_type|deny|directio|directio_alignment|disable_symlinks|empty_gif|env|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|log_format|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|port_in_redirect|postpone_output|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_header|proxy_read_timeout|proxy_redirect|proxy_send_timeout|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|working_directory|xml_entities|xslt_stylesheet|xslt_types)([[:space:]]|$)"
+color brightcyan "\b(on|off)\b"
+color brightyellow "\$[A-Za-z][A-Za-z0-9_]*"
+color red "[*]"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color yellow "(?s)'$.*?';$"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/ocaml.micro b/syntax_files/ocaml.micro
new file mode 100644
index 00000000..994c736c
--- /dev/null
+++ b/syntax_files/ocaml.micro
@@ -0,0 +1,25 @@
+syntax "OCaml" "\.mli?$"
+#uid
+color red "\b[A-Z][0-9a-z_]{2,}\b"
+#declarations
+color green "\b(let|val|method|in|and|rec|private|virtual|constraint)\b"
+#structure items
+color red "\b(type|open|class|module|exception|external)\b"
+#patterns
+color blue "\b(fun|function|functor|match|try|with)\b"
+#patterns-modifiers
+color yellow "\b(as|when|of)\b"
+#conditions
+color cyan "\b(if|then|else)\b"
+#blocs
+color magenta "\b(begin|end|object|struct|sig|for|while|do|done|to|downto)\b"
+#constantes
+color green "\b(true|false)\b"
+#modules/classes
+color green "\b(include|inherit|initializer)\b"
+#expr modifiers
+color yellow "\b(new|ref|mutable|lazy|assert|raise)\b"
+#comments
+color white "(?s)\(\*.*?\*\)"
+#strings (no multiline handling yet)
+color brightblack ""[^\"]*""
diff --git a/syntax_files/patch.micro b/syntax_files/patch.micro
new file mode 100644
index 00000000..7e9b16a1
--- /dev/null
+++ b/syntax_files/patch.micro
@@ -0,0 +1,10 @@
+## Here is an example for patch files.
+##
+syntax "Patch" "\.(patch|diff)$"
+color brightgreen "^\+.*"
+color green "^\+\+\+.*"
+color brightblue "^ .*"
+color brightred "^-.*"
+color red "^---.*"
+color brightyellow "^@@.*"
+color magenta "^diff.*"
diff --git a/syntax_files/peg.micro b/syntax_files/peg.micro
new file mode 100644
index 00000000..32297523
--- /dev/null
+++ b/syntax_files/peg.micro
@@ -0,0 +1,12 @@
+syntax "PEG" "\.l?peg$"
+
+color cyan "^[[:space:]]*[A-Za-z][A-Za-z0-9_]*[[:space:]]*<-"
+color blue "\^[+-]?[0-9]+"
+color red "[-+*?^/!&]|->|<-|=>"
+color brightyellow "%[A-Za-z][A-Za-z0-9_]*"
+color magenta "\[[^]]*\]"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])\-\-.*$"
+color brightwhite,cyan "TODO:?"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/perl.micro b/syntax_files/perl.micro
new file mode 100644
index 00000000..39160271
--- /dev/null
+++ b/syntax_files/perl.micro
@@ -0,0 +1,13 @@
+## Here is an example for Perl.
+##
+syntax "Perl" "\.p[lm]$"
+header "^#!.*/(env +)?perl( |$)"
+
+color red "\b(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\b" "\b(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\b" "\b(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\b" "\b(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\b" "\b(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\b"
+color magenta "\b(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\b"
+icolor cyan "(?s)[$@%].*?( |[^0-9A-Z_]|-)"
+color yellow "".*"|qq\|.*\|"
+color white "[sm]/.*/"
+color white "(?s)(^use| = new).*?;"
+color green "#.*"
+color yellow "(?s)<< 'STOP'.*?STOP"
diff --git a/syntax_files/perl6.micro b/syntax_files/perl6.micro
new file mode 100644
index 00000000..c857aed4
--- /dev/null
+++ b/syntax_files/perl6.micro
@@ -0,0 +1,16 @@
+## Here is an example for perl
+## Hybrid perl5 / perl6 syntax highlighting
+### Found in CPAN - http://cpansearch.perl.org/src/NIGE/Goo-0.09/lib/.gooskel/nanorc
+
+syntax "Perl6" "\.p6$"
+color brightblue "\b(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork)|get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join|keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek|seekdir|se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr|y|truncate|umask|un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\b"
+color brightblue "\b(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\b"
+
+# Perl 6 words
+color brightcyan "\b(has|is|class|role|given|when|BUILD|multi|returns|method|submethod|slurp|say|sub)\b"
+color brightmagenta "(?s)[$@%].*?( |\\W|-)"
+color brightred "".*"|qq\|.*\|"
+color white "[sm]/.*/"
+color brightblue "(?s)(^use| = new).*?;"
+color brightgreen "#.*"
+color brightred "(?s)<"
+# Functions
+color brightblue "([a-zA-Z0-9_-]*)\("
+# Constructs
+color brightblue "(class|extends|goto) ([a-zA-Z0-9_]*)"
+color green "[^a-z0-9_-]{1}(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|endif|foreach|endforeach|@|while|public|private|protected|return|true|false|null|TRUE|FALSE|NULL|const|static|extends|as|array|require|include|require_once|include_once|define|do|continue|declare|goto|print|in|namespace|use)[^a-z0-9_-]{1}"
+color brightblue "[a-zA-Z0-9]+:"
+# Variables
+color white "\$[a-zA-Z_0-9$]*|[=!<>]"
+color white "\->[a-zA-Z_0-9$]*|[=!<>]"
+# Special Characters
+color yellow "[.,{}();]"
+color yellow "\["
+color yellow "\]"
+color yellow "[=][^>]"
+# Numbers
+color magenta "[+-]*([0-9]\.)*[0-9]+([eE][+-]?([0-9]\.)*[0-9])*"
+color magenta "0x[0-9a-zA-Z]*"
+# Special Variables
+color brightblue "(\$this|parent::|self::|\$this->)"
+# Bitwise Operations
+color magenta "(\;|\||\^){1}"
+# And/Or/SRO/etc
+color green "(\;\;|\|\||::|=>|->)"
+# Online Comments
+color brightyellow "(#.*|//.*)$"
+# STRINGS!
+color red "('[^']*')|(\"[^\"]*\")"
+# Inline Variables
+color white "\{\$[^}]*\}"
+# PHP Tags
+color red "(<\?(php)?|\?>)"
+# General HTML
+color red "(?s)\?>.*?<\?(php|=)?"
+# trailing whitespace
+color ,green "[^[:space:]]{1}[[:space:]]+$"
+# multi-line comments
+color brightyellow "(?s)/\*.*?\*/"
diff --git a/syntax_files/pkg-config.micro b/syntax_files/pkg-config.micro
new file mode 100644
index 00000000..4c83ce89
--- /dev/null
+++ b/syntax_files/pkg-config.micro
@@ -0,0 +1,8 @@
+syntax "PC" "\.pc$"
+
+color cyan "^(Name|Description|URL|Version|Conflicts|Cflags):"
+color cyan "^(Requires|Libs)(\.private)?:"
+color red "="
+color brightyellow "\$\{[A-Za-z_][A-Za-z0-9_]*\}"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/pkgbuild.micro b/syntax_files/pkgbuild.micro
new file mode 100644
index 00000000..a0eb50c6
--- /dev/null
+++ b/syntax_files/pkgbuild.micro
@@ -0,0 +1,23 @@
+## Arch PKGBUILD files
+##
+syntax "PKGBUILD" "^.*PKGBUILD$"
+color green "(?s)^..*?$"
+color cyan "^.*(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license).*=.*$"
+color brightcyan "\b(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license)\b"
+color brightcyan "(\$|\$\{|\$\()(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license)(\}|\))"
+color cyan "^.*(depends|makedepends|optdepends|conflicts|provides|replaces).*=.*$"
+color brightcyan "\b(depends|makedepends|optdepends|conflicts|provides|replaces)\b"
+color brightcyan "(\$|\$\{|\$\()(depends|makedepends|optdepends|conflicts|provides|replaces)(\}|\))"
+color cyan "^.*(groups|backup|noextract|options).*=.*$"
+color brightcyan "\b(groups|backup|noextract|options)\b"
+color brightcyan "(\$|\$\{|\$\()(groups|backup|noextract|options)(\}|\))"
+color cyan "^.*(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums).*=.*$"
+color brightcyan "\b(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums)\b"
+color brightcyan "(\$|\$\{|\$\()(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums)(\}|\))"
+color brightcyan "\b(startdir|srcdir|pkgdir)\b"
+color cyan "\.install"
+color brightwhite "=" "'" "\(" "\)" "\"" "#.*$" "\," "\{" "\}"
+color brightred "build\(\)"
+color brightred "package_.*.*$"
+color brightred "\b(configure|make|cmake|scons)\b"
+color red "\b(DESTDIR|PREFIX|prefix|sysconfdir|datadir|libdir|includedir|mandir|infodir)\b"
diff --git a/syntax_files/po.micro b/syntax_files/po.micro
new file mode 100644
index 00000000..efeb56e8
--- /dev/null
+++ b/syntax_files/po.micro
@@ -0,0 +1,8 @@
+syntax "PO" "\.pot?$"
+
+color cyan "\b(msgid|msgstr)\b"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color magenta "\\.?"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/pov.micro b/syntax_files/pov.micro
new file mode 100644
index 00000000..99712c50
--- /dev/null
+++ b/syntax_files/pov.micro
@@ -0,0 +1,15 @@
+## Here is an example for POV-Ray.
+##
+syntax "POV" "\.(pov|POV|povray|POVRAY)$"
+color brightcyan "^[[:space:]]*#[[:space:]]*(declare)"
+color brightyellow "\b(sphere|cylinder|translate|matrix|rotate|scale)\b"
+color brightyellow "\b(orthographic|location|up|right|direction|clipped_by)\b"
+color brightyellow "\b(fog_type|fog_offset|fog_alt|rgb|distance|transform)\b"
+color brightred "^\b(texture)\b"
+color brightred "\b(light_source|background)\b"
+color brightred "\b(fog|object|camera)\b"
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color brightmagenta "\b(union|group|subgroup)\b"
+## Comment highlighting
+color brightblue "//.*"
+color brightblue "(?s)/\*.*?\*/"
diff --git a/syntax_files/privoxy.micro b/syntax_files/privoxy.micro
new file mode 100644
index 00000000..6f1f609c
--- /dev/null
+++ b/syntax_files/privoxy.micro
@@ -0,0 +1,27 @@
+syntax "Privoxy-config" "privoxy/config$"
+
+color cyan "(accept-intercepted-requests|actionsfile|admin-address|allow-cgi-request-crunching|buffer-limit|compression-level|confdir|connection-sharing|debug|default-server-timeout|deny-access|enable-compression|enable-edit-actions|enable-remote-http-toggle|enable-remote-toggle|enforce-blocks|filterfile|forward|forwarded-connect-retries|forward-socks4|forward-socks4a|forward-socks5|handle-as-empty-doc-returns-ok|hostname|keep-alive-timeout|listen-address|logdir|logfile|max-client-connections|permit-access|proxy-info-url|single-threaded|socket-timeout|split-large-forms|templdir|toggle|tolerate-pipelining|trustfile|trust-info-url|user-manual)[[:space:]]"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
+
+syntax "Privoxy-action" "\.action$"
+
+color brightred "[{[:space:]]\-block([[:space:]{}]|$)"
+color brightgreen "[{[:space:]]\+block([[:space:]{}]|$)"
+
+color brightred "-(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)"
+color brightgreen "\+(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)"
+color magenta "\\.?"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
+
+syntax "Privoxy-filter" "\.filter$"
+
+color cyan "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER): [a-z-]+"
+color brightblue "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER):"
+color magenta "\\.?"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/puppet.micro b/syntax_files/puppet.micro
new file mode 100644
index 00000000..1b29e0e9
--- /dev/null
+++ b/syntax_files/puppet.micro
@@ -0,0 +1,38 @@
+## Nano syntax highlighting for Puppet.
+##
+syntax "Puppet" "\.pp$"
+
+#This goes first, so the normal builtins will override in some classes
+## Paramerers
+color brightwhite "^[[:space:]]([a-z][a-z0-9_]+)"
+color brightgreen "\$[a-z:][a-z0-9_:]+"
+
+## List of built in types, also catches defines
+color yellow "\b(augeas|computer|cron|exec|file|filebucket|group|host|interface|k5login|macauthorization|mailalias|maillist|mcx|mount|nagios_command|nagios_contact|nagios_contactgroup|nagios_host|nagios_hostdependency|nagios_hostescalation|nagios_hostextinfo|nagios_hostgroup|nagios_service|nagios_servicedependency|nagios_serviceescalation|nagios_serviceextinfo|nagios_servicegroup|nagios_timeperiod|notify|package|resources|router|schedule|scheduled_task|selboolean|selmodule|service|ssh_authorized_key|sshkey|stage|tidy|user|vlan|yumrepo|zfs|zone|zpool|anchor)\b"
+color yellow "\b(class|define|if|else|undef|inherits)\b"
+color red "(=|-|~|>)"
+
+## Constants
+color brightblue "(\$|@|@@)?\b[A-Z]+[0-9A-Z_a-z]*"
+## Ruby "symbols"
+color magenta "([ ]|^):[0-9A-Z_]+\b"
+## Regular expressions
+color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*"
+## Shell command expansion is in `backticks` or like %x{this}. These are
+## "double-quotish" (to use a perlism).
+color brightblue "`[^`]*`" "%x\{[^}]*\}"
+## Strings, double-quoted
+color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
+## Expression substitution. These go inside double-quoted strings,
+## "like ${this}".
+color brightgreen "\$\{[^}]*\}"
+## Strings, single-quoted
+color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
+## Comments
+color cyan "#[^{].*$" "#$"
+color brightcyan "##[^{].*$" "##$"
+## Some common markers
+color brightcyan "(XXX|TODO|FIXME|\?\?\?)"
+## Trailing spaces
+color red "[[:space:]]+$"
+
diff --git a/syntax_files/python.micro b/syntax_files/python.micro
new file mode 100644
index 00000000..73a7b111
--- /dev/null
+++ b/syntax_files/python.micro
@@ -0,0 +1,48 @@
+## Here is an example for Python.
+##
+syntax "Python" "\.py$"
+header "^#!.*/(env +)?python( |$)"
+
+## built-in objects
+color cyan "\b(None|self|True|False)\b"
+## built-in attributes
+color cyan "\b(__builtin__|__dict__|__methods__|__members__|__class__|__bases__|__import__|__name__|__doc__|__self__|__debug__)\b"
+## built-in functions
+color cyan "\b(abs|append|apply|buffer|callable|chr|clear|close|closed|cmp|coerce|compile|complex|conjugate|copy|count|delattr|dir|divmod|eval|execfile|extend|fileno|filter|float|flush|get|getattr|globals|has_key|hasattr|hash|hex|id|index|input|insert|int|intern|isatty|isinstance|issubclass|items|keys|len|list|locals|long|map|max|min|mode|name|oct|open|ord|pop|pow|range|raw_input|read|readline|readlines|reduce|reload|remove|repr|reverse|round|seek|setattr|slice|softspace|sort|str|tell|truncate|tuple|type|unichr|unicode|update|values|vars|write|writelines|xrange|zip)\b"
+## special method names
+color cyan "\b(__abs__|__add__|__and__|__call__|__cmp__|__coerce__|__complex__|__concat__|__contains__|__del__|__delattr__|__delitem__|__delslice__|__div__|__divmod__|__float__|__getattr__|__getitem__|__getslice__|__hash__|__hex__|__init__|__int__|__inv__|__invert__|__len__|__long__|__lshift__|__mod__|__mul__|__neg__|__nonzero__|__oct__|__or__|__pos__|__pow__|__radd__|__rand__|__rcmp__|__rdiv__|__rdivmod__|__repeat__|__repr__|__rlshift__|__rmod__|__rmul__|__ror__|__rpow__|__rrshift__|__rshift__|__rsub__|__rxor__|__setattr__|__setitem__|__setslice__|__str__|__sub__|__xor__)\b"
+## exception classes
+# color cyan "\b(Exception|StandardError|ArithmeticError|LookupError|EnvironmentError|AssertionError|AttributeError|EOFError|FloatingPointError|IOError|ImportError|IndexError|KeyError|KeyboardInterrupt|MemoryError|NameError|NotImplementedError|OSError|OverflowError|RuntimeError|SyntaxError|SystemError|SystemExit|TypeError|UnboundLocalError|UnicodeError|ValueError|WindowsError|ZeroDivisionError)\b"
+## types
+color brightcyan "\b(NoneType|TypeType|IntType|LongType|FloatType|ComplexType|StringType|UnicodeType|BufferType|TupleType|ListType|DictType|FunctionType|LambdaType|CodeType|ClassType|UnboundMethodType|InstanceType|MethodType|BuiltinFunctionType|BuiltinMethodType|ModuleType|FileType|XRangeType|TracebackType|FrameType|SliceType|EllipsisType)\b"
+## definitions
+color brightcyan "def [a-zA-Z_0-9]+"
+## keywords
+color brightblue "\b(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|map|not|or|pass|print|raise|return|try|with|while|yield)\b"
+
+## decorators
+color brightgreen "@.*[(]"
+
+## operators
+color magenta "[.:;,+*|=!\%@]" "<" ">" "/" "-" "&"
+
+## parentheses
+color magenta "[(){}]" "\[" "\]"
+
+## numbers
+color brightyellow "\b[0-9]+\b"
+
+## strings
+color yellow "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"
+color yellow "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
+
+## comments
+color green "#.*$"
+
+## block comments
+color green "(?s)"""([^"]|$).*?"""" "(?s)'''([^']|$).*?'''"
+#color cyan "(?s)"""[^"].*?"""" "(?s)'''[^'].*?'''"
+#color cyan "(?s)([[:space:]]"""|^""").*?"""" "(?s)'''[^'].*?'''"
+#color cyan "(?s)""".*?"""" "(?s)'''.*?'''"
+#color cyan "(?s)("""[^"]|[^"]""").*?("""[^"]|[^"]""")" "(?s)'''[^'].*?'''"
+#color cyan "(?s)\"\"\".*?\"\"\""
diff --git a/syntax_files/reST.micro b/syntax_files/reST.micro
new file mode 100644
index 00000000..c0152fda
--- /dev/null
+++ b/syntax_files/reST.micro
@@ -0,0 +1,27 @@
+## For reST
+syntax "RST" "\.rest$" "\.rst$"
+# italics
+#color magenta "\*[^*]\*"
+# bold
+color red "\*\*[^*]+\*\*"
+# code block
+color brightred "::"
+# link reference
+color blue "`[^`]+`_{1,2}"
+# code
+color yellow "``[^`]+``"
+# directives or comments
+color cyan "^\.\. .*$"
+# anon link targets
+color cyan "^__ .*$"
+# h1
+color yellow "^###+$"
+color yellow "^\*\*\*+$"
+# h2
+color magenta "^===+$"
+# h3
+color red "^---+$"
+# h4
+color green "^\^\^\^+$"
+# h5
+color blue "^"""+$"
diff --git a/syntax_files/rpmspec.micro b/syntax_files/rpmspec.micro
new file mode 100644
index 00000000..25065c0b
--- /dev/null
+++ b/syntax_files/rpmspec.micro
@@ -0,0 +1,27 @@
+syntax "Rpmspec" "\.spec$" "\.rpmspec$"
+
+color cyan "\b(Icon|ExclusiveOs|ExcludeOs):"
+color cyan "\b(BuildArch|BuildArchitectures|ExclusiveArch|ExcludeArch):"
+color cyan "\b(Conflicts|Obsoletes|Provides|Requires|Requires\(.*\)|Enhances|Suggests|BuildConflicts|BuildRequires|Recommends|PreReq|Supplements):"
+color cyan "\b(Epoch|Serial|Nosource|Nopatch):"
+color cyan "\b(AutoReq|AutoProv|AutoReqProv):"
+color cyan "\b(Copyright|License|Summary|Summary\(.*\)|Distribution|Vendor|Packager|Group|Source[0-9]*|Patch[0-9]*|BuildRoot|Prefix):"
+color cyan "\b(Name|Version|Release|Url|URL):"
+color cyan "(?s)^(Source|Patch).*?:"
+color cyan "(i386|i486|i586|i686|athlon|ia64|alpha|alphaev5|alphaev56|alphapca56|alphaev6|alphaev67|sparc|sparcv9|sparc64armv3l|armv4b|armv4lm|ips|mipsel|ppc|ppc|iseries|ppcpseries|ppc64|m68k|m68kmint|Sgi|rs6000|i370|s390x|s390|noarch)"
+color cyan "(ifarch|ifnarch|ifos|ifnos)"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightyellow "%(if|else|endif|define|global|undefine)"
+color brightyellow "%_?([A-Z_a-z_0-9_]*)"
+color brightyellow "(?s)%\{.*?\}"
+color brightyellow "(?s)%\{__.*?\}"
+color brightyellow "\$(RPM_BUILD_ROOT)\b"
+color brightmagenta "^%(build$|changelog|check$|clean$|description)"
+color brightmagenta "^%(files|install$|package|prep$)"
+color brightmagenta "^%(pre|preun|pretrans|post|postun|posttrans)"
+color brightmagenta "^%(trigger|triggerin|triggerpostun|triggerun|verifyscript)"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color blue "^\*.*$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
+color brightwhite,cyan "TODO:?"
diff --git a/syntax_files/ruby.micro b/syntax_files/ruby.micro
new file mode 100644
index 00000000..78e60511
--- /dev/null
+++ b/syntax_files/ruby.micro
@@ -0,0 +1,32 @@
+## Here is an example for Ruby.
+##
+syntax "Ruby" "\.rb$" "Gemfile" "config.ru" "Rakefile" "Capfile" "Vagrantfile"
+header "^#!.*/(env +)?ruby( |$)"
+
+## Asciibetical list of reserved words
+color yellow "\b(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\b"
+## Constants
+color brightblue "(\$|@|@@)?\b[A-Z]+[0-9A-Z_a-z]*"
+## Ruby "symbols"
+icolor magenta "([ ]|^):[0-9A-Z_]+\b"
+## Some unique things we want to stand out
+color brightyellow "\b(__FILE__|__LINE__)\b"
+## Regular expressions
+color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*"
+## Shell command expansion is in `backticks` or like %x{this}. These are
+## "double-quotish" (to use a perlism).
+color brightblue "`[^`]*`" "%x\{[^}]*\}"
+## Strings, double-quoted
+color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
+## Expression substitution. These go inside double-quoted strings,
+## "like #{this}".
+color brightgreen "#\{[^}]*\}"
+## Strings, single-quoted
+color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
+## Comments
+color cyan "#[^{].*$" "#$"
+color brightcyan "##[^{].*$" "##$"
+## "Here" docs
+color green "(?s)<<-?'?EOT'?.*?^EOT"
+## Some common markers
+color brightcyan "(XXX|TODO|FIXME|\?\?\?)"
diff --git a/syntax_files/rust.micro b/syntax_files/rust.micro
new file mode 100644
index 00000000..47c632fb
--- /dev/null
+++ b/syntax_files/rust.micro
@@ -0,0 +1,36 @@
+# Nano configuration for Rust
+# Copyright 2015 The Rust Project Developers.
+#
+# NOTE: Rules are applied in order: later rules re-colorize matching text.
+syntax "Rust" "\.rs"
+
+# function definition
+color magenta "fn [a-z0-9_]+"
+
+# Reserved words
+color yellow "\b(abstract|alignof|as|become|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b"
+
+# macros
+color red "[a-z_]+!"
+
+# Constants
+color magenta "[A-Z][A-Z_]+"
+
+# Traits/Enums/Structs/Types/etc.
+color magenta "[A-Z][a-z]+"
+
+# Strings
+color green "\".*\""
+color green "(?s)\".*\\$.*?.*\""
+# NOTE: This isn't accurate but matching "#{0,} for the end of the string is too liberal
+color green "(?s)r#+\".*?\"#+"
+
+# Comments
+color blue "//.*"
+color blue "(?s)/\*.*?\*/"
+
+# Attributes
+color magenta "(?s)#!\[.*?\]"
+
+# Some common markers
+color brightcyan "(XXX|TODO|FIXME|\?\?\?)"
diff --git a/syntax_files/scala.micro b/syntax_files/scala.micro
new file mode 100644
index 00000000..270eccfc
--- /dev/null
+++ b/syntax_files/scala.micro
@@ -0,0 +1,12 @@
+## Here is an example for Scala.
+##
+syntax "Scala" "\.scala$"
+color green "\b(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\b"
+color red "\b(match|val|var|break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\b"
+color cyan "\b(def|object|case|trait|lazy|implicit|abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile|sealed)\b"
+color red ""[^"]*""
+color yellow "\b(true|false|null)\b"
+color blue "//.*"
+color blue "(?s)/\*.*?\*/"
+color brightblue "(?s)/\*\*.*?\*/"
+color ,green "[[:space:]]+$"
diff --git a/syntax_files/sed.micro b/syntax_files/sed.micro
new file mode 100644
index 00000000..286c8ca5
--- /dev/null
+++ b/syntax_files/sed.micro
@@ -0,0 +1,9 @@
+syntax "SED" "\.sed$"
+header "^#!.*bin/(env +)?sed( |$)"
+
+color red "[|^$.*+]"
+color brightyellow "\{[0-9]+,?[0-9]*\}"
+color magenta "\\."
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/sh.micro b/syntax_files/sh.micro
new file mode 100644
index 00000000..868b1755
--- /dev/null
+++ b/syntax_files/sh.micro
@@ -0,0 +1,15 @@
+## Here is an example for Bourne shell scripts.
+##
+syntax "SH" "\.sh$" "\.bash" "\.bashrc" "bashrc" "\.bash_aliases" "bash_aliases" "\.bash_functions" "bash_functions" "\.bash_profile" "bash_profile"
+header "^#!.*/(env +)?(ba)?sh( |$)"
+
+color green "\b(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\b"
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color green "-[Ldefgruwx]\b"
+color green "-(eq|ne|gt|lt|ge|le|s|n|z)\b"
+color brightblue "\b(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|make|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\b"
+icolor brightgreen "^\s+[0-9A-Z_]+\s+\(\)"
+icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
+color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
+color cyan "(^|[[:space:]])#.*$"
+#color ,green "[[:space:]]+$"
diff --git a/syntax_files/sls.micro b/syntax_files/sls.micro
new file mode 100644
index 00000000..01c9aa0a
--- /dev/null
+++ b/syntax_files/sls.micro
@@ -0,0 +1,26 @@
+## SaltStack files (*.sls)
+##
+
+syntax "Salt" "\.sls$"
+
+# Anything ending in a colon (:), including things that start with a dash (-)
+color blue "^[^ -].*:$"
+color blue ".*:"
+# Except for salt:// URLs
+color white "salt:"
+
+# Numbers, etc
+color red "/*[0-9]/*"
+color red "\b(True|False)\b"
+
+# Anything between two single quotes
+color green ""(\\.|[^"])*"|'(\\.|[^'])*'"
+
+# Matching keywords
+color yellow "\b(grain|grains|compound|pcre|grain_pcre|list|pillar)\b"
+
+# Comments
+color brightblack "^#.*"
+
+# Logic keywords
+color magenta "\b(if|elif|else|or|not|and|endif|end)\b"
diff --git a/syntax_files/sql.micro b/syntax_files/sql.micro
new file mode 100644
index 00000000..a2115eed
--- /dev/null
+++ b/syntax_files/sql.micro
@@ -0,0 +1,34 @@
+syntax "SQL" "\.sql$" "sqliterc$"
+
+icolor cyan "\b(ALL|ASC|AS|ALTER|AND|ADD|AUTO_INCREMENT)\b"
+icolor cyan "\b(BETWEEN|BINARY|BOTH|BY|BOOLEAN)\b"
+icolor cyan "\b(CHANGE|CHECK|COLUMNS|COLUMN|CROSS|CREATE)\b"
+icolor cyan "\b(DATABASES|DATABASE|DATA|DELAYED|DESCRIBE|DESC|DISTINCT|DELETE|DROP|DEFAULT)\b"
+icolor cyan "\b(ENCLOSED|ESCAPED|EXISTS|EXPLAIN)\b"
+icolor cyan "\b(FIELDS|FIELD|FLUSH|FOR|FOREIGN|FUNCTION|FROM)\b"
+icolor cyan "\b(GROUP|GRANT|HAVING)\b"
+icolor cyan "\b(IGNORE|INDEX|INFILE|INSERT|INNER|INTO|IDENTIFIED|IN|IS|IF)\b"
+icolor cyan "\b(JOIN|KEYS|KILL|KEY)\b"
+icolor cyan "\b(LEADING|LIKE|LIMIT|LINES|LOAD|LOCAL|LOCK|LOW_PRIORITY|LEFT|LANGUAGE)\b"
+icolor cyan "\b(MODIFY|NATURAL|NOT|NULL|NEXTVAL)\b"
+icolor cyan "\b(OPTIMIZE|OPTION|OPTIONALLY|ORDER|OUTFILE|OR|OUTER|ON)\b"
+icolor cyan "\b(PROCEDURE|PROCEDURAL|PRIMARY)\b"
+icolor cyan "\b(READ|REFERENCES|REGEXP|RENAME|REPLACE|RETURN|REVOKE|RLIKE|RIGHT)\b"
+icolor cyan "\b(SHOW|SONAME|STATUS|STRAIGHT_JOIN|SELECT|SETVAL|SET)\b"
+icolor cyan "\b(TABLES|TERMINATED|TO|TRAILING|TRUNCATE|TABLE|TEMPORARY|TRIGGER|TRUSTED)\b"
+icolor cyan "\b(UNIQUE|UNLOCK|USE|USING|UPDATE|VALUES|VARIABLES|VIEW)\b"
+icolor cyan "\b(WITH|WRITE|WHERE|ZEROFILL|TYPE|XOR)\b"
+color green "\b(VARCHAR|TINYINT|TEXT|DATE|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT|FLOAT|DOUBLE|DECIMAL|DATETIME|TIMESTAMP|TIME|YEAR|UNSIGNED|CHAR|TINYBLOB|TINYTEXT|BLOB|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|ENUM|BOOL|BINARY|VARBINARY)\b"
+
+# SQLite meta commands
+icolor cyan "\.\b(databases|dump|echo|exit|explain|header(s)?|help)\b"
+icolor cyan "\.\b(import|indices|mode|nullvalue|output|prompt|quit|read)\b"
+icolor cyan "\.\b(schema|separator|show|tables|timeout|width)\b"
+color brightcyan "\b(ON|OFF)\b"
+
+color blue "\b([0-9]+)\b"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color yellow "`(\\.|[^\\`])*`"
+color brightblack "\-\-.*$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/swift.micro b/syntax_files/swift.micro
new file mode 100644
index 00000000..fa75f031
--- /dev/null
+++ b/syntax_files/swift.micro
@@ -0,0 +1,40 @@
+##############################################################################
+# Swift syntax highlighting for Nano.
+##############################################################################
+
+syntax "Swift" "\.swift$"
+
+# Default
+color white ".+"
+
+# Operators
+color yellow "[.:;,+*|=!?\%]" "<" ">" "/" "-" "&"
+
+# Statements
+color magenta "(class|import|let|var|struct|enum|func|if|else|switch|case|default|for|in|internal|external|unowned|private|public|throws)\ "
+color magenta "(prefix|postfix|operator|extension|lazy|get|set|self|willSet|didSet|override|super|convenience|weak|strong|mutating|return|guard)\ "
+
+# Keywords
+color cyan "(print)"
+color magenta "(init)"
+
+# Numbers
+color blue "([0-9]+)"
+
+# Standard Types
+color brightmagenta "\ ((U)?Int(8|16|32|64))"
+color brightmagenta "(true|false|nil)"
+color brightmagenta "\ (Double|String|Float|Boolean|Dictionary|Array|Int)"
+color magenta "\ (AnyObject)"
+
+# Text
+color red ""[^"]*""
+
+# Comments
+color green "//.*"
+color brightgreen "///.*"
+color green "(?s)/\*\*.*?\*/"
+color green "[/**]"
+
+# Trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/syntax_files/systemd.micro b/syntax_files/systemd.micro
new file mode 100644
index 00000000..75afbb5c
--- /dev/null
+++ b/syntax_files/systemd.micro
@@ -0,0 +1,12 @@
+syntax "Systemd" "\.(service|socket)$"
+header "^\[Unit\]$"
+
+color cyan "^(Accept|After|Alias|AllowIsolate|Also|ANSI_COLOR|_AUDIT_LOGINUID|_AUDIT_SESSION|Backlog|Before|BindIPv6Only|BindsTo|BindToDevice|BlockIOReadBandwidth|BlockIOWeight|BlockIOWriteBandwidth|_BOOT_ID|Broadcast|BUG_REPORT_URL|BusName|Capabilities|CapabilityBoundingSet|CHASSIS|cipher|class|_CMDLINE|CODE_FILE|CODE_FUNC|CODE_LINE|_COMM|Compress|ConditionACPower|ConditionCapability|ConditionDirectoryNotEmpty|ConditionFileIsExecutable|ConditionFileNotEmpty|ConditionHost|ConditionKernelCommandLine|ConditionNull|ConditionPathExists|ConditionPathExistsGlob|ConditionPathIsDirectory|ConditionPathIsMountPoint|ConditionPathIsReadWrite|ConditionPathIsSymbolicLink|ConditionSecurity|ConditionVirtualization|Conflicts|ControlGroup|ControlGroupAttribute|ControlGroupModify|ControlGroupPersistent|controllers|Controllers|CPE_NAME|CPUAffinity|CPUSchedulingPolicy|CPUSchedulingPriority|CPUSchedulingResetOnFork|CPUShares|CrashChVT|CrashShell|__CURSOR|debug|DefaultControllers|DefaultDependencies|DefaultLimitAS|DefaultLimitCORE|DefaultLimitCPU|DefaultLimitDATA|DefaultLimitFSIZE|DefaultLimitLOCKS|DefaultLimitMEMLOCK|DefaultLimitMSGQUEUE|DefaultLimitNICE|DefaultLimitNOFILE|DefaultLimitNPROC|DefaultLimitRSS|DefaultLimitRTPRIO|DefaultLimitRTTIME|DefaultLimitSIGPENDING|DefaultLimitSTACK|DefaultStandardError|DefaultStandardOutput|Description|DeviceAllow|DeviceDeny|DirectoryMode|DirectoryNotEmpty|Documentation|DumpCore|entropy|Environment|EnvironmentFile|ERRNO|event_timeout|_EXE|ExecReload|ExecStart|ExecStartPost|ExecStartPre|ExecStop|ExecStopPost|ExecStopPre|filter|FONT|FONT_MAP|FONT_UNIMAP|ForwardToConsole|ForwardToKMsg|ForwardToSyslog|FreeBind|freq|FsckPassNo|fstab|_GID|Group|GuessMainPID|HandleHibernateKey|HandleLidSwitch|HandlePowerKey|HandleSuspendKey|hash|HibernateKeyIgnoreInhibited|HOME_URL|_HOSTNAME|ICON_NAME|ID|IdleAction|IdleActionSec|ID_LIKE|ID_MODEL|ID_MODEL_FROM_DATABASE|IgnoreOnIsolate|IgnoreOnSnapshot|IgnoreSIGPIPE|InaccessibleDirectories|InhibitDelayMaxSec|init|IOSchedulingClass|IOSchedulingPriority|IPTOS|IPTTL|JobTimeoutSec|JoinControllers|KeepAlive|KEYMAP|KEYMAP_TOGGLE|KillExcludeUsers|KillMode|KillOnlyUsers|KillSignal|KillUserProcesses|LidSwitchIgnoreInhibited|LimitAS|LimitCORE|LimitCPU|LimitDATA|LimitFSIZE|LimitLOCKS|LimitMEMLOCK|LimitMSGQUEUE|LimitNICE|LimitNOFILE|LimitNPROC|LimitRSS|LimitRTPRIO|LimitRTTIME|LimitSIGPENDING|LimitSTACK|link_priority|valueListenDatagram|ListenFIFO|ListenMessageQueue|ListenNetlink|ListenSequentialPacket|ListenSpecial|ListenStream|LogColor|LogLevel|LogLocation|LogTarget|luks|_MACHINE_ID|MakeDirectory|Mark|MaxConnections|MaxFileSec|MaxLevelConsole|MaxLevelKMsg|MaxLevelStore|MaxLevelSyslog|MaxRetentionSec|MemoryLimit|MemorySoftLimit|MESSAGE|MESSAGE_ID|MessageQueueMaxMessages|MessageQueueMessageSize|__MONOTONIC_TIMESTAMP|MountFlags|NAME|NAutoVTs|Nice|NonBlocking|NoNewPrivileges|NotifyAccess|OnActiveSec|OnBootSec|OnCalendar|OnFailure|OnFailureIsolate|OnStartupSec|OnUnitActiveSec|OnUnitInactiveSec|OOMScoreAdjust|Options|output|PAMName|PartOf|PassCredentials|PassSecurity|PathChanged|PathExists|PathExistsGlob|PathModified|PermissionsStartOnly|_PID|PIDFile|PipeSize|PowerKeyIgnoreInhibited|PRETTY_HOSTNAME|PRETTY_NAME|Priority|PRIORITY|PrivateNetwork|PrivateTmp|PropagatesReloadTo|pss|RateLimitBurst|RateLimitInterval|ReadOnlyDirectories|ReadWriteDirectories|__REALTIME_TIMESTAMP|ReceiveBuffer|RefuseManualStart|RefuseManualStop|rel|ReloadPropagatedFrom|RemainAfterExit|RequiredBy|Requires|RequiresMountsFor|RequiresOverridable|Requisite|RequisiteOverridable|ReserveVT|ResetControllers|Restart|RestartPreventExitStatus|RestartSec|RootDirectory|RootDirectoryStartOnly|RuntimeKeepFree|RuntimeMaxFileSize|RuntimeMaxUse|RuntimeWatchdogSec|samples|scale_x|scale_y|Seal|SecureBits|_SELINUX_CONTEXT|SendBuffer|SendSIGKILL|Service|ShowStatus|ShutdownWatchdogSec|size|SmackLabel|SmackLabelIPIn|SmackLabelIPOut|SocketMode|Sockets|SourcePath|_SOURCE_REALTIME_TIMESTAMP|SplitMode|StandardError|StandardInput|StandardOutput|StartLimitAction|StartLimitBurst|StartLimitInterval|static_node|StopWhenUnneeded|Storage|string_escape|none|replaceSuccessExitStatus|SupplementaryGroups|SUPPORT_URL|SuspendKeyIgnoreInhibited|SyslogFacility|SYSLOG_FACILITY|SyslogIdentifier|SYSLOG_IDENTIFIER|SyslogLevel|SyslogLevelPrefix|SYSLOG_PID|SystemCallFilter|SYSTEMD_ALIAS|_SYSTEMD_CGROUP|_SYSTEMD_OWNER_UID|SYSTEMD_READY|_SYSTEMD_SESSION|_SYSTEMD_UNIT|_SYSTEMD_USER_UNIT|SYSTEMD_WANTS|SystemKeepFree|SystemMaxFileSize|SystemMaxUse|SysVStartPriority|TCPCongestion|TCPWrapName|timeout|TimeoutSec|TimeoutStartSec|TimeoutStopSec|TimerSlackNSec|Transparent|_TRANSPORT|tries|TTYPath|TTYReset|TTYVHangup|TTYVTDisallocate|Type|_UID|UMask|Unit|User|UtmpIdentifier|VERSION|VERSION_ID|WantedBy|Wants|WatchdogSec|What|Where|WorkingDirectory)="
+color brightblue "^\.include\b"
+color red "="
+color brightmagenta "^\[(Unit|Install|Service|Socket)\]"
+color brightyellow "\$MAINPID"
+color brightcyan "\b(true|false)\b"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/tcl.micro b/syntax_files/tcl.micro
new file mode 100644
index 00000000..44a4dc39
--- /dev/null
+++ b/syntax_files/tcl.micro
@@ -0,0 +1,24 @@
+syntax "TCL" "\.tcl$"
+header "^#!.*/(env +)?tclsh( |$)"
+
+## Standard Tcl [info commands]
+color cyan "\b(after|append|array|auto_execok|auto_import|auto_load|auto_load_index|auto_qualify|binary|break|case|catch|cd|clock|close|concat|continue|else|encoding|eof|error|eval|exec|exit|expr|fblocked|fconfigure|fcopy|file|fileevent|flush|for|foreach|format|gets|glob|global|history|if|incr|info|interp|join|lappend|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|namespace|open|package|pid|puts|pwd|read|regexp|regsub|rename|return|scan|seek|set|socket|source|split|string|subst|switch|tclLog|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait|while)\b"
+## Basic Tcl sub commands
+color cyan "\b(array anymore|array donesearch|array exists|array get|array names|array nextelement|array set|array size|array startsearch|array statistics|array unset)\b"
+color cyan "\b(string bytelength|string compare|string equal|string first|string index|string is|string last|string length|string map|string match|string range|string repeat|string replace|string to|string tolower|string totitle|string toupper|string trim|string trimleft|string trimright|string will|string wordend|string wordstart)\b"
+## Extended TclX [info commands]
+color cyan "\b(alarm|auto_load_pkg|bsearch|catclose|catgets|catopen|ccollate|cconcat|cequal|chgrp|chmod|chown|chroot|cindex|clength|cmdtrace|commandloop|crange|csubstr|ctoken|ctype|dup|echo|execl|fcntl|flock|fork|fstat|ftruncate|funlock|host_info|id|infox|keyldel|keylget|keylkeys|keylset|kill|lassign|lcontain|lempty|lgets|link|lmatch|loadlibindex|loop|lvarcat|lvarpop|lvarpush|max|min|nice|pipe|profile|random|readdir|replicate|scancontext|scanfile|scanmatch|select|server_accept|server_create|signal|sleep|sync|system|tclx_findinit|tclx_fork|tclx_load_tndxs|tclx_sleep|tclx_system|tclx_wait|times|translit|try_eval|umask|wait)\b"
+## Function declaration
+color brightblue "proc[[:space:]]" "(\{|\})"
+## Syntax
+color green "(\(|\)|\;|`|\\|\$|<|>|!|=|&|\|)"
+## Numbers
+color brightyellow "\b[0-9]+(\.[0-9]+)?\b"
+## Strings
+color yellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
+## Variables
+icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
+## Comments
+color magenta "(^|;)[[:space:]]*#.*"
+## Trailing whitespace
+color ,blue "[[:space:]]+$"
diff --git a/syntax_files/tex.micro b/syntax_files/tex.micro
new file mode 100644
index 00000000..4910c35b
--- /dev/null
+++ b/syntax_files/tex.micro
@@ -0,0 +1,8 @@
+## Here is a short example for TeX files.
+##
+syntax "TeX" "\.tex$" "bib" "\.bib$" "cls" "\.cls$"
+color yellow "\$[^$]*\$"
+icolor green "\\.|\\[A-Z]*"
+color magenta "[{}]"
+color blue "%.*"
+color blue "(?s)\\begin\{comment\}.*?\\end\{comment\}"
diff --git a/syntax_files/vala.micro b/syntax_files/vala.micro
new file mode 100644
index 00000000..5f05299b
--- /dev/null
+++ b/syntax_files/vala.micro
@@ -0,0 +1,18 @@
+syntax "Vala" "\.vala$"
+
+color green "\b(float|double|bool|char|int|uint|short|long|void|(un)?signed)\b"
+color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
+color cyan "\b(for|if|while|do|else|case|default|switch|try|throw|catch)\b"
+color cyan "\b(inline|typedef|struct|enum|union|extern|static|const)\b"
+color cyan "\b(operator|new|delete|return|null)\b"
+color cyan "\b(class|override|private|public|signal|this|weak)\b"
+color brightred "\b(goto|break|continue)\b"
+color brightcyan "\b(true|false)\b"
+color blue "\b([0-9]+)\b"
+color red "[-+/*=<>?:!~%&|]" "->"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])//.*"
+color brightblack "(?s)/\*.*?\*/"
+color brightwhite,cyan "TODO:?"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/vi.micro b/syntax_files/vi.micro
new file mode 100644
index 00000000..8b35fab1
--- /dev/null
+++ b/syntax_files/vi.micro
@@ -0,0 +1,10 @@
+syntax "VI" "(^|/|\.)(ex|vim)rc$|\.vim"
+
+color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
+color cyan "\b([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\b"
+color cyan "\b(snor|nun|nm|set|if|endif|let|unlet)\b"
+color red "[!&=]"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])\"[^"]*$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/xml.micro b/syntax_files/xml.micro
new file mode 100644
index 00000000..ee3b848d
--- /dev/null
+++ b/syntax_files/xml.micro
@@ -0,0 +1,11 @@
+## Here is an example for xml files.
+##
+
+syntax "XML" ".*\.([jrs]?html?|xml|sgml?|rng)$"
+color white "^.+$"
+color green "(?s)<.*?>"
+color cyan "<[^> ]+"
+color cyan ">"
+color yellow "(?s)"
+color yellow "(?s)"
+color red "&[^;]*;"
diff --git a/syntax_files/xresources.micro b/syntax_files/xresources.micro
new file mode 100644
index 00000000..7e5c8b9e
--- /dev/null
+++ b/syntax_files/xresources.micro
@@ -0,0 +1,10 @@
+syntax "Xresources" "X(defaults|resources)$"
+
+color green "^[[:alnum:]]+\*"
+color brightyellow "\*[[:alnum:]]+\:"
+color blue "\b[0-9]+\b"
+color red "[*:=]"
+color brightcyan "\b(true|false)\b"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/yaml.micro b/syntax_files/yaml.micro
new file mode 100644
index 00000000..8e6b70ba
--- /dev/null
+++ b/syntax_files/yaml.micro
@@ -0,0 +1,13 @@
+syntax "YAML" "\.ya?ml$"
+header "^---" "%YAML"
+
+color green "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) "
+color brightcyan "\b(YES|yes|Y|y|ON|on|NO|no|N|n|OFF|off)\b"
+color brightcyan "\b(true|false)\b"
+color red ":[[:space:]]" "\[" "\]" ":[[:space:]]+[|>]" "^[[:space:]]*- "
+color brightyellow "[[:space:]][\*&][A-Za-z0-9]+"
+color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color brightmagenta "^---" "^\.\.\." "^%YAML" "^%TAG"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/yum.micro b/syntax_files/yum.micro
new file mode 100644
index 00000000..b4639229
--- /dev/null
+++ b/syntax_files/yum.micro
@@ -0,0 +1,8 @@
+syntax "YUM" "\.repo$|yum.*\.conf$"
+
+color cyan "^[[:space:]]*[^=]*="
+color brightmagenta "^[[:space:]]*\[.*\]$"
+color brightyellow "\$(releasever|arch|basearch|uuid|YUM[0-9])"
+color brightblack "(^|[[:space:]])#([^{].*)?$"
+color ,green "[[:space:]]+$"
+color ,red " + +| + +"
diff --git a/syntax_files/zsh.micro b/syntax_files/zsh.micro
new file mode 100644
index 00000000..e79d3d35
--- /dev/null
+++ b/syntax_files/zsh.micro
@@ -0,0 +1,42 @@
+## Syntax highlighting for ZSH scripts (initially copied from sh.nanorc)
+syntax "ZSH" "\.zsh$" "\.?(zshenv|zprofile|zshrc|zlogin|zlogout)$"
+header "^#!.*/(env +)?zsh( |$)"
+
+## Numbers
+color brightyellow "\b[0-9]+\b"
+
+## Conditionals and control flow
+color green "\b(always|break|bye|case|continue|disown|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\b"
+
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+## Conditional flags
+color green "-[Ldefgruwx]\b"
+color green "-(eq|ne|gt|lt|ge|le|s|n|z)\b"
+
+## Bash-inherited
+color brightblue "\b((un)?alias|bindkey|builtin|cd|declare|eval|exec|export|jobs|let|popd|pushd|set|source|typeset|umask|unset)\b"
+## ZSH-specific
+color brightblue "\b(add-zsh-hook|autoload|chdir|compinit|dirs|(dis|en)able|echotc|emulate|print|prompt(init)?|(un)?setopt|zle|zmodload|zstyle|whence)\b"
+
+## Common linux commands
+color brightmagenta "\b((g|ig)?awk|find|\w{0,4}grep|kill|killall|\w{0,4}less|make|pkill|sed|tar)\b"
+
+## Coreutils commands
+color brightmagenta "\b(base64|basename|cat|chcon|chgrp|chmod|chown|chroot|cksum|comm|cp|csplit|cut|date|dd|df|dir|dircolors|dirname|du|echo|env|expand|expr|factor|false|fmt|fold|head|hostid|id|install|join|link|ln|logname|ls|md5sum|mkdir|mkfifo|mknod|mktemp|mv|nice|nl|nohup|nproc|numfmt|od|paste|pathchk|pinky|pr|printenv|printf|ptx|pwd|readlink|realpath|rm|rmdir|runcon|seq|(sha1|sha224|sha256|sha384|sha512)sum|shred|shuf|sleep|sort|split|stat|stdbuf|stty|sum|sync|tac|tail|tee|test|timeout|touch|tr|true|truncate|tsort|tty|uname|unexpand|uniq|unlink|users|vdir|wc|who|whoami|yes)\b"
+
+## Function definition
+icolor brightgreen "^\s+(function\s+)[0-9A-Z_]+\s+\(\)"
+
+## Variables
+icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
+
+## Strings
+color yellow ""(\\.|[^"])*""
+color yellow "'(\\.|[^'])*'"
+
+## Comments
+color cyan "(^|[[:space:]])#.*$"
+color brightcyan "(^|[[:space:]])##.*$"
+
+## Trailing spaces
+color ,blue "[[:space:]]+$"