/SLang-VS-Plugin

SLang Programming Language support for Visual Studio IDE.

Primary LanguageC#

SLang Visual Studio Extension

Feature Support Documentation

Add support for SLang Programming Language into Visual Studio IDE. Target version is Visual Studio 2019.

Up-to-date development progress can be tracked via "Essential Features" github project

Implemented Features:

  • Code Highlight (Tagger)
    • Lexer-based
  • Symbol Resolver
    • Resolver Tagger
  • Project management
    • Create project file (*.slangproj)
    • Templates (Empty project, Basic Command Line app)
    • Build with compiler (output paths, debug/release modes)
    • Settings (compiler path, startup/other file)
  • IntelliSense (define api, write stubs)
    • Quick Info (file context)
    • Error indication (interface only)
    • List Members (plain file context)
  • Code Navigation
    • Go to definition (file context)
  • Code folding (Outlining) + (needs to be moved to AST interface)
  • .editorconfig
    • explicit integration into project
  • Comment/uncomment commands
  • Brace matching in expressions
  • Occurance matching (Plain file context)
  • Smart/Auto Indent
  • Indent Guides

Future Consideration Features:

  • Analysis tools (maybe slang metrics?)
  • Document formatting (need separate formatter of some customizable tool)
  • IntelliCode (requires deep learning)
  • Debugger
    • Debug mode launch
    • breakpoints
    • variable watches
  • Navigation Bars (function/etc navigation dropdown on top of editor)
  • Solution Explorer Search
  • Snippets
  • Occurance Matching (semantic api)
  • Intellisense features
    • Parameter Info / Signature Help (semantic api)
    • Complete Word (semantic api)
    • Lightbulb suggestions (semantic api)
    • Error indication (senabtic api)
    • List Members (semantic api)
  • Code Navigation
    • Peek definition (create wpf window view?)(semantic api)
    • Find all references (semantic api)

Custom Coloring rules

Symbol Default Color In Hex
Undefined symbol Dark gray
Unit definition Light Teal #4ec9b0
Unit member routine definition Light Yellow #dcdcaa