Skip to content
Snippets Groups Projects
Verified Commit f3163a2e authored by Dmytro Bogatov's avatar Dmytro Bogatov :two_hearts:
Browse files

Initial commit.

parents
Branches
Tags
No related merge requests found
## 0.1.0 - First Release
* Every feature added
* Every bug fixed
# TL-Verilog support for Atom
TL-Verilog support.
fileTypes: [
"tlv"
"TLV"
]
foldingStartMarker: "(begin)\\s*(//.*)?$"
foldingStopMarker: "^\\s*(begin)$"
name: "TL Verilog"
patterns: [
{
match: "\\b(automatic|cell|config|deassign|defparam|design|disable|edge|endconfig|endgenerate|endspecify|endtable|endtask|event|generate|genvar|ifnone|incdir|instance|liblist|library|localparam|macromodule|negedge|noshowcancelled|posedge|pulsestyle_onevent|pulsestyle_ondetect|real|realtime|scalared|showcancelled|specify|specparam|table|task|time|use|vectored|new)\\b"
name: "keyword.other.tlverilog"
}
{
match: "@\\b(\\d+)\\b"
name: "entity.name.stage.tlverilog"
}
{
match: "\\|\\b([a-zA-Z0-9_]+)\\b"
name: "entity.name.pipe.tlverilog"
}
{
match: "\\t"
name: "invalid.illegal.tlverilog"
}
{
match: ">([a-zA-Z][a-zA-Z0-9_]+)"
name: "entity.name.hierarchy.tlverilog"
}
{
match: "\\/([a-zA-Z0-9_]+)"
name: "entity.name.hierarchy.tlverilog"
}
{
match: "\\?[\\$\\*][a-zA-Z0-9_]+"
name: "keyword.control.conditional.tlverilog"
}
{
match: "\\$\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b"
name: "variable.other.tlverilog"
}
{
match: "%([+-]\\d+|\\w+)"
name: "entity.name.alignment.tlverilog"
}
{
match: "\\b([mM]4\\+\\w+)"
name: "support.macro.tlverilog"
}
{
match: "^\\s*\\\\(TLV.*|SV.*|m4_TLV_version.*)$"
name: "keyword.region.tlverilog"
}
{
match: "\\*\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b"
name: "variable.sv.tlverilog"
}
{
match: "\\#\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b"
name: "constant.other.tlverilog"
}
{
match: "(<<|<>|>>-?)[a-zA-Z0-9_]+"
name: "entity.name.alignment.tlverilog"
}
{
match: "\\b(#|@|begin|end|fork|join|join_any|join_none|forkjoin|{|})\\b"
name: "keyword.other.tlverilog"
}
{
match: "\\b(initial|always|wait|force|release|assign|always_comb|always_ff|always_latch|forever|repeat|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|randomize|with|inside|dist|clocking|cover|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|modport|matches|solve|static|assert|assume|before|expect|bind|extends|sequence|var|cross|ref|first_match|srandom|time|struct|packed|final|chandle|alias|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|unique|uwire|wait_order|triggered|randsequence|import|export|context|pure|intersect|wildcard|within|virtual|local|const|typedef|enum|protected|this|super|endmodule|endfunction|endprimitive|endclass|endpackage|endsequence|endprogram|endclocking|endproperty|endgroup|endinterface)\\b"
name: "keyword.control.tlverilog"
}
{
match: "\\b(std)\\b::"
name: "support.class.tlverilog"
}
{
match: "\\.(atob|atohex|atoi|atooct|atoreal|bintoa|hextoa|itoa|octtoa|realtoa|len|getc|putc|toupper|tolower|compare|icompare|substr|num|exists|first|last|name|index|find|find_first|find_last|find_index|find_first_index|find_last_index|min|max|unique|unique_index|sort|rsort|shuffle|reverse|sum|product|xor|status|kill|self|await|suspend|resume|get|put|peek|try_get|try_peek|try_put|data|eq|neq|next|prev|new|size|delete|empty|pop_front|pop_back|front|back|insert|insert_range|erase|erase_range|set|swap|clear|purge|start|finish)\\b"
name: "support.function.tlverilog"
}
{
match: "\\b(get_randstate|set_randstate)\\b"
name: "support.function.tlverilog"
}
{
match: "\\b(null|void)\\b"
name: "support.constant.tlverilog"
}
{
captures:
"1":
name: "keyword.other.tlverilog"
"2":
name: "entity.name.type.include.tlverilog"
match: "^\\s*(`include)\\s+([\"<].*[\">])"
name: "meta.include.tlverilog"
}
{
match: "`(celldefine|default_nettype|define|else|elsif|endcelldefine|endif|ifdef|ifndef|include|line|nounconnected_drive|resetall|timescale|unconnected_drive|undef|begin_\\w+|end_\\w+|remove_\\w+|restore_\\w+)\\b"
name: "constant.other.preprocessor.tlverilog"
}
{
include: "#comments"
}
{
captures:
"1":
name: "storage.type.tlverilog"
"3":
name: "entity.name.type.class.tlverilog"
match: "\\b(function)\\b\\s+(\\[.*\\])?\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b"
name: "meta.definition.tlverilog"
}
{
captures:
"1":
name: "storage.type.tlverilog"
"2":
name: "entity.name.type.class.tlverilog"
match: "^\\s*(module|function|primitive|class|package|constraint|interface|covergroup|program)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b"
name: "meta.definition.tlverilog"
}
{
include: "#all-types"
}
{
match: "'\\s*\\(.+\\)"
name: "keyword.operator.staticcasting.tlverilog"
}
{
begin: "'{"
beginCaptures:
"0":
name: "keyword.operator.unpackaedarrayassignment.begin.tlverilog"
end: "}"
endCaptures:
"0":
name: "keyword.operator.unpackaedarrayassignment.end.tlverilog"
name: "keyword.operator.unpackedarrayassignment.tlverilog"
patterns: [
{
match: "."
name: "constant.character.escape.tlverilog"
}
]
}
{
match: "\\b(output|input|inout|and|nand|nor|or|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|tran|r?tranif[01]|pullup|pulldown)\\b"
name: "support.type.tlverilog"
}
{
match: "(\\b\\d+)?'[sS]?([bB]\\s*[0-1_xXzZ?]+|[oO]\\s*[0-7_xXzZ?]+|[dD]\\s*[0-9_xXzZ?]+|[hH]\\s*[0-9a-fA-F_xXzZ?]+|[0-1xz])((e|E)(\\+|-)?[0-9]+)?\\b"
name: "constant.numeric.tlverilog"
}
{
include: "#strings"
}
]
repository:
"all-types":
patterns: [
{
include: "#storage-type-tlverilog"
}
{
include: "#storage-modifier-tlverilog"
}
]
comments:
patterns: [
{
begin: "/\\*"
captures:
"0":
name: "punctuation.definition.comment.tlverilog"
end: "\\*/"
name: "comment.block.tlverilog"
}
{
captures:
"1":
name: "punctuation.definition.comment.tlverilog"
match: "(//).*$\\n?"
name: "comment.line.double-slash.tlverilog"
}
]
"storage-type-tlverilog":
match: "\\b(wire|tri|tri[01]|supply[01]|wand|triand|wor|trior|trireg|reg|parameter|integer|rand|randc|int|longint|shortint|logic|bit|byte|shortreal|string)\\b"
name: "storage.type.tlverilog"
"storage-modifier-tlverilog":
match: "\\b(signed|unsigned|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\b"
name: "storage.modifier.tlverilog"
strings:
patterns: [
{
begin: "\""
beginCaptures:
"0":
name: "punctuation.definition.string.begin.tlverilog"
end: "\""
endCaptures:
"0":
name: "punctuation.definition.string.end.tlverilog"
name: "string.quoted.double.tlverilog"
patterns: [
{
match: "\\\\."
name: "constant.character.escape.tlverilog"
}
]
}
{
begin: "'"
beginCaptures:
"0":
name: "punctuation.definition.string.begin.tlverilog"
end: "'"
endCaptures:
"0":
name: "punctuation.definition.string.end.tlverilog"
name: "string.quoted.single.tlverilog"
patterns: [
{
match: "\\\\."
name: "constant.character.escape.tlverilog"
}
]
}
]
scopeName: "source.tlverilog"
@import "./styles/base.less";
{
"name": "tl-verilog",
"version": "0.0.0",
"description": "TL-Verilog support",
"keywords": [],
"repository": "https://github.com/dbogatov/tlv-atom",
"license": "MIT",
"engines": {
"atom": ">=1.0.0 <2.0.0"
},
"dependencies": {}
}
\ No newline at end of file
@import "syntax-variables";
atom-text-editor {
background-color: @syntax-background-color;
color: @syntax-text-color;
}
atom-text-editor .gutter {
background-color: @syntax-gutter-background-color;
color: @syntax-gutter-text-color;
}
atom-text-editor .gutter .line-number.cursor-line {
background-color: @syntax-gutter-background-color-selected;
color: @syntax-gutter-text-color-selected;
}
atom-text-editor .gutter .line-number.cursor-line-no-selection {
color: @syntax-gutter-text-color-selected;
}
atom-text-editor .wrap-guide {
color: @syntax-wrap-guide-color;
}
atom-text-editor .indent-guide {
color: @syntax-indent-guide-color;
}
atom-text-editor .invisible-character {
color: @syntax-invisible-character-color;
}
atom-text-editor.is-focused .cursor {
border-color: @syntax-cursor-color;
}
atom-text-editor.is-focused .selection .region {
background-color: @syntax-selection-color;
}
atom-text-editor.is-focused .line-number.cursor-line-no-selection, atom-text-editor.is-focused .line.cursor-line {
background-color: #F8F8F0;
}
.syntax--entity.syntax--name.syntax--pipe.syntax--tlverilog {
color: #ffa500;
}
.syntax--entity.syntax--name.syntax--stage.syntax--tlverilog {
font-style: italic;
color: #5A8325;
}
.syntax--entity.syntax--name.syntax--hierarchy.syntax--tlverilog {
color: #20A0C0;
}
.syntax--variable.syntax--other.syntax--tlverilog {
color: #800080;
}
.syntax--entity.syntax--name.syntax--alignment.syntax--tlverilog {
color: #5BCC6B;
}
.syntax--support.syntax--macro.syntax--tlverilog {
font-weight: bold;
color: #000000;
}
.syntax--variable.syntax--sv.syntax--tlverilog {
color: #8b0000;
}
.syntax--constant.syntax--numeric.syntax--tlverilog {
color: #1F57C5;
}
.syntax--comment {
font-weight: bold;
font-style: italic;
color: #808080;
}
.syntax--keyword.syntax--region.syntax--tlverilog {
font-weight: bold;
color: #00008b;
}
.syntax--keyword.syntax--control.syntax--conditional.syntax--tlverilog {
color: #f04000;
}
.syntax--constant.syntax--other.syntax--tlverilog {
color: #274659;
}
.syntax--keyword.syntax--control.syntax--tlverilog {
color: #368;
}
.syntax--support.syntax--function.syntax--tlverilog {
color: #368;
}
.syntax--keyword.syntax--other.syntax--tlverilog {
color: #368;
}
.syntax--emphasis {
font-style: italic;
}
.syntax--strong {
font-weight: bold;
}
.syntax--meta.syntax--diff.syntax--header {
color: #000080;
}
.syntax--constant.syntax--language {
color: #0000ff;
}
.syntax--constant.syntax--numeric {
color: #09885a;
}
.syntax--constant.syntax--regexp {
color: #811f3f;
}
.syntax--entity.syntax--name.syntax--tag {
color: #800000;
}
.syntax--entity.syntax--name.syntax--selector {
color: #800000;
}
.syntax--entity.syntax--other.syntax--attribute-name {
color: #ff0000;
}
.syntax--invalid {
color: #cd3131;
}
.syntax--markup.syntax--underline {
text-decoration: underline;
}
.syntax--markup.syntax--bold {
font-weight: bold;
color: #000080;
}
.syntax--markup.syntax--heading {
font-weight: bold;
color: #800000;
}
.syntax--markup.syntax--italic {
font-style: italic;
}
.syntax--markup.syntax--inserted {
color: #09885a;
}
.syntax--markup.syntax--deleted {
color: #a31515;
}
.syntax--markup.syntax--changed {
color: #0451a5;
}
.syntax--markup.syntax--inline.syntax--raw {
color: #800000;
}
.syntax--meta.syntax--selector {
color: #800000;
}
.syntax--punctuation.syntax--definition.syntax--tag {
color: #800000;
}
.syntax--meta.syntax--preprocessor {
color: #0000ff;
}
.syntax--meta.syntax--preprocessor.syntax--string {
color: #a31515;
}
.syntax--meta.syntax--preprocessor.syntax--numeric {
color: #09885a;
}
.syntax--meta.syntax--structure.syntax--dictionary.syntax--key.syntax--python {
color: #0451a5;
}
.syntax--storage {
color: #0000ff;
}
.syntax--storage.syntax--type {
color: #0000ff;
}
.syntax--storage.syntax--modifier {
color: #0000ff;
}
.syntax--string {
color: #a31515;
}
.syntax--string.syntax--regexp {
color: #811f3f;
}
.syntax--support.syntax--type.syntax--property-name.syntax--json {
color: #0451a5;
}
.syntax--keyword {
color: #0000ff;
}
.syntax--keyword.syntax--control {
color: #0000ff;
}
.syntax--keyword.syntax--operator {
color: #000000;
}
.syntax--keyword.syntax--other.syntax--unit {
color: #09885a;
}
.syntax--support.syntax--function.syntax--git-rebase {
color: #0451a5;
}
.syntax--constant.syntax--sha.syntax--git-rebase {
color: #09885a;
}
.syntax--variable.syntax--language {
color: #0000ff;
}
.syntax--keyword.syntax--control {
color: #AF00DB;
}
// This defines all syntax variables that syntax themes must implement when they
// include a syntax-variables.less file.
// General colors
@syntax-text-color: rgba(0, 0, 0, 1);
@syntax-cursor-color: #F8F8F0;
@syntax-selection-color: #ADD6FF;
@syntax-background-color: rgba(255, 255, 255, 1);
// Guide colors
@syntax-wrap-guide-color: #49483E;
@syntax-indent-guide-color: #49483E;
@syntax-invisible-character-color: #49483E;
// For find and replace markers
@syntax-result-marker-color: #49483E;
@syntax-result-marker-color-selected: rgba(0, 0, 0, 1);
// Gutter colors
@syntax-gutter-text-color: rgba(0, 0, 0, 1);
@syntax-gutter-text-color-selected: rgba(0, 0, 0, 1);
@syntax-gutter-background-color: rgba(255, 255, 255, 1);
@syntax-gutter-background-color-selected: #49483E;
// For git diff info. i.e. in the gutter
// These are static and were not extracted from your textmate theme
@syntax-color-renamed: #96CBFE;
@syntax-color-added: #A8FF60;
@syntax-color-modified: #E9C062;
@syntax-color-removed: #CC6666;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment