-
Notifications
You must be signed in to change notification settings - Fork 11
Home
Martin Bórik edited this page Nov 23, 2021
·
6 revisions
- syntax highlighting for Z80 assembly sources of well known Z80 macro-assemblers, for example:
- problem matchers for SjASMPlus, Macroassembler AS, Pasmo, rasm and tniASM compilation output
- label or symbol defintion documentation, suggestions on hover or typing
- macro documentation and argument definition suggestions
- semi-automatic completition with formatting
- renaming of labels or symbols
- formatting of block or whole document (experimental feature)
- snippets for macros and source control keywords
These few options allows you to configure extension's behavior but primarily your code-formatting preferences and code completion:
-
z80-macroasm.files.exclude
- Choose files or directories to exclude (e.g'**/*.{lst}'
). -
z80-macroasm.files.include
- Files to include and work with. If you, or your macro-assembler using a different conventions of source file extensions then change it here.default:
"**/*.{a80,asm,inc,s}"
-
z80-macroasm.seekSymbolsThroughWorkspace
- If true, extension will crawl through all your workspace files to document all symbols. Otherwise, only includes are taken into account.default:
false
-
z80-macroasm.format.enabled
- Turn on the experimental feature of format on-type or on-save.default:
false
-
z80-macroasm.format.baseIndent
- How many tabstops you prefer before the instructions or keywords.default:
2
-
z80-macroasm.format.controlIndent
- How many tabstops you prefer before the control structure keywords, selections, modules, or blocks.default:
1
-
z80-macroasm.format.whitespaceAfterInstruction
- Which type of whitespace you want to put after the instruction -"tab"
,"single-space"
or"auto"
which autodetect file's tabstop type and width.default:
"auto"
-
z80-macroasm.format.spaceAfterArgument
- If you want to put a single space character after comma (instruction's argument).default:
false
-
z80-macroasm.format.uppercaseKeywords
- If true, uppercase all keywords, instructions and registers. False means all lowercased and"auto"
tries to auto-detect your code-style while typing.default:
"auto"
-
z80-macroasm.format.bracketType
- Define which type of brackets around the instruction's arguments (pointers) you prefer:(round)
or[square]
.default:
"round"
-
z80-macroasm.format.colonAfterLabels
- Put colon after each label or symbol (true or false,"no-change"
keeps it untouched).default:
"no-change"
-
z80-macroasm.format.hexaNumberStyle
- Define which hexadecimal number format you prefer to reformat:- "no-change" - no reformat happen (default)
-
"hash":
#1fff
|#B45D
-
"motorola":
$1fff
|$B45D
-
"intel":
1fffh
|0B45Dh
-
"intel-uppercase":
1fffH
|0B45DH
-
"c-style":
0x1fff
|0xB45D
-
z80-macroasm.format.hexaNumberCase
- When reformatting of hexadecimal numbers was enabled, whether it's to be additional case processing applied whentrue
means uppercased,false
lowercased.default:
"no-change"
-
z80-macroasm.format.splitInstructionsByColon
- Split colon separated instructions to lines.default:
true
These keys/values can be used in your workspace or global settings.json
.
See example »»
There are some predefined problem matchers to handle reported errors from compilation output:
-
errmatcher-as
for Macroassembler AS -
errmatcher-sjasmplus
for SjASMPlus -
errmatcher-sjasm
for SjASM -
errmatcher-pasmo
for Pasmo -
errmatcher-rasm
for rasm -
errmatcher-tniasm
anderrmatcher-tniasm-preprocessor
for tniASM
These values can be used in .vscode/tasks.json
of your project's build task.
See example »»
- provide symbols or labels
- in current file in "Go to Symbol in File..." [
Ctrl+Shift+O
,Cmd+Shift+O
] - in all includes in "Go to Symbol in Workspace..." [
Ctrl+T
,Cmd+T
] - in Outline side-bar
- in current file in "Go to Symbol in File..." [
- Generated map of every symbol defined considers also modules or temporal labels:
- Show symbol's value or specific definiton on hover:
- Inteligent completion of directives, pseudo-instructions, Z80 instructions, registers, labels or symbols:
- Allow to rename labels, local labels, module names or macro indetifiers in InteliSense meaning.
This extension was done by Martin Bórik with some inspirations from these VS Code extensions:
-
z80asm-vscode
by Imanol Barriuso -
vscode-pasmo
by BouKiCHi -
rgbds-vscode
by Donald Hays
Extension is licensed under the MIT license.