ironsheep / P2-vscode-langserv-extension

Spin/Spin2 Language Server based vscode extension
MIT License
1 stars 0 forks source link
parallax-multicore-microcontroller parallax-propeller-microcontroller pasm pasm2 propeller propeller2 spin spin2 vscode vscode-extension vscode-theme

VSCode support for the Parallax Propeller v1 & v2 8-Core MCU's

Project Maintenance License Release GitHub issues

Spin2 Extension: Version Installs Downloads

VSCode support for the Propeller languages: Spin2 and Pasm2 for the Parallax Inc. Propeller 2 P2 or P2X8C4M64P along with Spin and Pasm support for the Propeller 1 P1 or P8X32A.

The P2 and P1 communities thrive in the P2 Forums and the P1 Forums

The P2 Forum Thread containing discussion of this VSCode support

The P1 Forum Thread containing discussion of this VSCode support

New ToolChain support in v2.30

This new release adds runtime detection of compilers and support for switching compilers for a given project.

Step-by-step, one-time, migration of your environment to v2.3.0 is covered in our Migrate Checklist page. Please visit this page to adjust your setup for this new version.

Features

Up next

We are working on the next updates:

These are not yet definate but I'm:

Future directions

Installation

In VSCode search for the "spin2" extension and install it. It's that easy! After installation you will be notified to download and install a new version as new versions are released.

Note: This extension fully replaces the Spin by Entomy vscode extension. While either can be used, our version provides more comprehensive Syntax highlighting (as the former has not been maintained) and this extension adds full Semantic Highlighting, Outlining, and Tab support with InsertModes, Document generation, etc. The older Spin extension can now be uninstalled with no loss of functionality.

VSCode Environment

There are additional companion documents in this Repository:

  1. Configuring User Tasks - Windows which advises on how to automate your P2 Development when using VScode on Windows
  2. Configuring User Tasks - MacOS which advises on how to automate your P2 Development when using VScode on macOS
  3. Configuring User Tasks - RPI which advises on how to automate your P2 Development when using VScode on Raspberry Pi
  4. Configure VSCode for background coloring by Spin Block how to set up coloring and some additional notes
  5. VSCode Extensions we find useful in our own P2 development
  6. Visual Examples - Tabbing a visual explaination of how our Tabbing feature works (For those of us, like me, who understand more easily when we see pictures.)
  7. Engineering Notes - Tabbing more detailed description of how our Tabbing feature works
  8. Spin2 Extension Details: Settings and Keyboard Mapping
  9. Additional details of new compiler support ToolChain REF

Also, here are a couple of really useful VSCode sources:

Please go look at each of these once so you can know what's here when you need them!

Known Conflicts with other VSCode Extensions

We know the three extension so far which might interfere with our Spin2 extension. Here's what we've seem:

  1. If I haven't already, I'll be submitting pull requests to the Overtype extension maintainers to add code for avoiding interference with our .spin/.spin2 InsertMode feature but in the meantime please ensure that the Overtype by Adma Maras and/or Overtype by DrMerfy extensions are disabled or uninstalled as they can interfere with our extensions' behavior.
  2. The Extension Document This v0.8.2 currently also occasionally intercepts the Ctrl+Alt+D keystroke which we use to generate documentation and our extension then doesn't get the request. I've filed an issue with that extensions' maintainer so maybe this will be fixed in the future. Meanwhile, you can either disable the Document This extension or when you see the warning pop up from the document this extension you can usually just click in your editor window again and then press Ctrl+Alt+d again and it will work after one or more tries.

Repository Notes

This repository contains a single subproject which is the vscode extension:


If you like my work and/or this has helped you in some way then feel free to help me out for a couple of :coffee:'s or :pizza: slices or support my work by contributing at Patreon!

coffee    -OR-    PatreonPatreon.com/IronSheep


Credits

Ray [Cluso99] in our Propeller 2 Forums which started this effort for us.

Patrick (GitHub Entomy) for a spin1 extension which helped me get further along with this one.

Jay B. Harlow for contributing the initial elastic tabs feature.

George (GitHub DrMerfy) for the latest VSCode-Overtype extension which provided the foundation to which we could add the Align mode.

License

Licensed under the MIT License.

Follow these links for more information:

Copyright | License