Syntax and Semantic Highlighting
The Sigasi extension supports syntax and semantic highlighting.
- Syntax highlighting: colors code according to the lexical classification (such as keyword or string)
- Semantic highlighting: colors code according to its meaning (different colors for constants and signals)
Note that some VS Code themes might not support semantic highlighting. Be sure to use the default VS Code themes if you’re missing this feature.
- In a theme that supports semantic highlighting, you’ll see that e.g.
port
,signal
, andtype
names have a color that is different from the language keywords. - In a theme that does not support semantic highlighting, names like those of a
port
,signal
, ortype
will have the default text color.
The latter might also happen when there’s no .project
file in your root directory. Without it, the Sigasi extension does not start and only provides basic syntax highlighting.
User-Defined Code Snippets
VS Code supports user-defined code snippets as explained here . To add snippets yourself, follow the steps below.
- Open the Command Palette (Ctrl+Shift+P) and type Snippets
- Select Snippets: Configure User Snippets
- Type vhdl or systemverilog to open the corresponding JSON file where you can add your snippet like the examples below.
VHDL Snippet Example
{
// Place your snippets for VHDL here.
"package declaration": {
"prefix": "package",
"body": [
"package ${1:name} is",
"\t$0",
"end package $1;"
],
"description": "Insert package declaration"
}
}
SystemVerilog Snippet Example
{
// Place your snippets for Verilog and SystemVerilog here.
"always posedge clk": {
"prefix": "always",
"body": [
"always @(posedge ${1:clk}) begin",
"\t$0",
"end"
],
"description": "Insert an always block with posedge clock"
}
}
Sticky Scroll
You can use the sticky scroll to navigate through your HDL code more easily. This configuration can be enabled with the key editor.stickyScroll.enabled
Stuttering
VHDL editors support stuttering, which is enabled by default but can be toggled using the configuration option Enable stuttering with the key sigasi.vhdl.stuttering
.