Skip to content

Latest commit

 

History

History
107 lines (83 loc) · 3.39 KB

README.md

File metadata and controls

107 lines (83 loc) · 3.39 KB

Nim for Visual Studio Code

NOTE: This is currently a mirror of the original Nim extension

Changes include:

  • Fixes for syntax highlighting bugs
  • Changes to syntax highlighting to more properly reflect idiomatic practice. This will look different and many words will now not be highlighted as you may have been used to, but this is more consistent and correct to the language standard.
  • A pretty new icon

Potential problems:

  • Some syntax may still not be properly highlighted due to rewriting the syntax highlighting. These issues will be fixed as they are found.

NOTE: You can enable optional coloring for basic types in your settings.json You have to set the color yourself in #RRGGBB format. You can't make it match your current them automatically.

    "editor.tokenColorCustomizations": {
        "textMateRules": [
            {
                "scope": "basicTypes.nim",
                "settings": {
                    "foreground": "#ff0000",
                }
            }
        ]
    }

This extension adds language support for the Nim language to VS Code, including:

  • Syntax Highlight (nim, nimble, nim.cfg)
  • Code Completion
  • Signature Help
  • Goto Definition
  • Find References
  • File outline
  • Build-on-save
  • Workspace symbol search
  • Quick info
  • Nim check result reported in Nim output channel (great for macro development).

output channel demo

Using

First, you will need to install Visual Studio Code 0.10. In the command palette (cmd-shift-p) select Install Extension and choose Nim.

The following tools are required for the extension:

Note: It is recommended to turn Auto Save on in Visual Studio Code (File -> Auto Save) when using this extension.

Options

The following Visual Studio Code settings are available for the Nim extension. These can be set in user preferences (cmd+,) or workspace settings (.vscode/settings.json).

  • nim.buildOnSave - perform build task from tasks.json file, to use this options you need declare build task according to Tasks Documentation, for example:
     {
     	"taskName": "Run module.nim",
     	"command": "nim",
     	"args": ["c", "-r", "module.nim"],
     	"options": {
     		"cwd": "${workspaceRoot}"
     	},
     	"type": "shell",
     	"group": {
     		"kind": "build",
     		"isDefault": true
     	}
     }
  • nim.lintOnSave - perform the project check for errors on save
  • nim.project - optional array of projects file, if nim.project is not defined then all nim files will be used as separate project
  • nim.licenseString - optional license text that will be inserted on nim file creation

Example

{
	"nim.buildOnSave": false,
	"nim.buildCommand": "c",
	"nim.lintOnSave": true,
	"nim.project": ["project.nim", "project2.nim"],
	"nim.licenseString": "# Copyright 2017.\n\n"
}

Commands

The following commands are provided by the extension:

  • Nim: Run selected file - compile and run selected file, it uses c compiler by default, but you can specify cpp in nim.buildCommand config parameter. This command available from file context menu or by F6 keyboard shortcut.

TODO

  • Rename support
  • Debug support

ChangeLog

ChangeLog is located here