Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions solidity.nanorc
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Solidity Nano Highlighting
# Latest 0.2.1-draft
# July 14, 2024
# Version 0.2.0-draft
# July 13, 2023
# License: UPL-1.0
Expand All @@ -8,51 +10,48 @@ syntax solidity "\.sol$"
header "^pragma solidity [\^\~\>\<]?=?[0-9\.]*;"
magic "Solidity"

# External files
color mint "\<(import)\>"

# Strings and names of imported files.
color brightyellow ""([^"]|\\")*"|#[[:blank:]]*import[[:blank:]]*<[^>]+>"
# nanorc color reference:
# pink, purple, mauve, lagoon, mint, lime, peach, orange, latte, rosy, beet, plum, sea, sky, slate, teal, sage, brown, ocher, sand, tawny, brick, crimson, and normal
# (bold): red, green, blue, magenta, yellow, cyan, white, and black.

#color green "\<"
#color green "\<"
# Import statements
color brightwhite "^import(\s+).*$"

# elementaryTypeName

# color yellow "\<(address|bool|string|var|Int|Uint|byte|Byte|Fixed|Ufixed)\>"

# ReservedKeyword
color purple "\<(abstract|after|case|catch|default|final|in|inline|let|match|null|of|relocatable|static|switch|try|typeof|abstract|override)\>"
color brightmagenta "\<(abstract|after|case|catch|default|final|in|inline|let|match|null|of|relocatable|static|switch|try|typeof|abstract|override)\>"

# Reminders.
# Reminders
color brightwhite,yellow "\<(FIXME|TODO|XXX)\>"

# ncolor brightmagenta "^pragma.*$"

# Operators
# FIXME: not sure if this color combo works actually
color bold,lagoon ":|\*|/|%|\+|-|\^|>|>=|<|<=|~=|=|\.\.|#|\<(not|and|or)\>"

# Other things
color crimson "\{(using|for|modifier|if|else|while|do |assembly|continue|break|throw|emit|var|let \}"
color crimson "\{(after|delete|switch|case|default|hex|abstract|catch|final| in |inline|match|of|relocatable|static|try|typeof|get\}"
color crimson "\{(anonymous|constant|return |set\}"
color crimson "\<(using|for|modifier|if|else|while|do |assembly|continue|break|throw|emit|var|let)\>"
color crimson "\<(after|delete|switch|case|default|hex|abstract|catch|final| in |inline|match|of|relocatable|static|try|typeof|get)\>"
color crimson "\<(anonymous|constant|return |set)\>"

# Modifiers
color brightmagenta "public|private|internal|external|pure|view|payable|override|virtual|memory|storage|calldata|indexed|type"
color brightcyan "public|private|internal|external|pure|view|payable|override|virtual|memory|storage|calldata|indexed|type"

# Types
color green "\<("bool|address|string|struct|enum|event|mapping"\>"
color green "\<("int|int8|int16|int24|int32|int40|int48|int56|int64|int72|int80|int88|int96|int104|int112|int120|int128|int136|int144|int152|int160|int168|int176|int184|int192|int200|int208|int216|int224|int232|int240|int248|int256"\>"
color green "\<("uint|uint8|uint16|uint24|uint32|uint40|uint48|uint56|uint64|uint72|uint80|uint88|uint96|uint104|uint112|uint120|uint128|uint136|uint144|uint152|uint160|uint168|uint176|uint184|uint192|uint200|uint208|uint216|uint224|uint232|uint240|uint248|uint256"\>"
color green "\<("bytes|bytes1|bytes2|bytes3|bytes4|bytes5|bytes6|bytes7|bytes8|bytes9|bytes10|bytes11|bytes12|bytes13|bytes14|bytes15|bytes16|bytes17|bytes18|bytes19|bytes20|bytes21|bytes22|bytes23|bytes24|bytes25|bytes26|bytes27|bytes28|bytes29|bytes30|bytes31|bytes32"\>"
color magenta "\<fixed|ufixed|true|false|null"\>"
color green "\<bool|address|string|struct|enum|event|mapping\>"
color green "\<int|int8|int16|int24|int32|int40|int48|int56|int64|int72|int80|int88|int96|int104|int112|int120|int128|int136|int144|int152|int160|int168|int176|int184|int192|int200|int208|int216|int224|int232|int240|int248|int256\>"
color green "\<uint|uint8|uint16|uint24|uint32|uint40|uint48|uint56|uint64|uint72|uint80|uint88|uint96|uint104|uint112|uint120|uint128|uint136|uint144|uint152|uint160|uint168|uint176|uint184|uint192|uint200|uint208|uint216|uint224|uint232|uint240|uint248|uint256\>"
color plum "\<bytes|bytes1|bytes2|bytes3|bytes4|bytes5|bytes6|bytes7|bytes8|bytes9|bytes10|bytes11|bytes12|bytes13|bytes14|bytes15|bytes16|bytes17|bytes18|bytes19|bytes20|bytes21|bytes22|bytes23|bytes24|bytes25|bytes26|bytes27|bytes28|bytes29|bytes30|bytes31|bytes32\>"
color magenta "\<fixed|ufixed|true|false|null\>"

# Octal/decimal and hexadecimal numbers.
color cyan "\<([0-9]+|0x[[:xdigit:]]+)\>"

# Decimal and hexadecimal numbers
color red "\<[0-9]+(\.[0-9]*)?([Ee][+-]?[0-9]+)?\>"
color red "\<0x[[:xdigit:]]+(\.[[:xdigit:]]*)?([Pp][+-]?[0-9]+)?\>"
color peach "\<[0-9]+(\.[0-9]*)?([Ee][+-]?[0-9]+)?\>"
color peach "\<0x[[:xdigit:]]+(\.[[:xdigit:]]*)?([Pp][+-]?[0-9]+)?\>"

## String
color brightyellow "L?\"(\\"|[^"])*\""
Expand Down Expand Up @@ -83,14 +82,15 @@ color bold,purple "assert|revert|addmod|mulmod|sha256|sha3|ripemd160|ecrecover"
color yellow "0x\w+\.(balance|transfer|send|call|callcode|delegatecall)"
color yellow "0x\w{64}"

# Comments
# Comments and Natspec Directives

comment "//"
# Comments
color slate "//.*"
color slate start="/\*" end="\*/"

#color blue "(^|[[:space:]])//.*$"
# Comments.
color brightblue "(^|[[:blank:]])//.*"
color brightblue start="/\**" end="\*/"
# NatSpec comments
color italic,latte start="/\*\*" end="\*/"
color italic,lime "/// .*"

# Highlighting for natspec comments
color magenta "@param [a-zA-Z_][a-z0-9A-Z_]+"
Expand Down