BTW, is there a way to assign an F-key to the action "close all terminal windows"? I often forget to close them so I get "task downloadP2 is already active" or "no propeller found on any port". Clicking on all the trashcan icons in the terminal window list in the lower right corner is somehow inconvenient.
@ManAtWork said:
BTW, is there a way to assign an F-key to the action "close all terminal windows"? I often forget to close them so I get "task downloadP2 is already active" or "no propeller found on any port". Clicking on all the trashcan icons in the terminal window list in the lower right corner is somehow inconvenient.
@"Stephen Moraco" , you said at the live forum than somthing is broken with my screen. Themes or syntax highlighting is turned off or somehting. I can't tell because I'm used to what I see and don't know anything different. You said, there was a lot of "white text". This an example screenshot.
I know, the code looks ugly because of all the commented out debug()s. But should it look different?
@ManAtWork said:
I know, the code looks ugly because of all the commented out debug()s. But should it look different?
Yes, I believe it should look different.
Check which theme you have selected. Code->Settings...->Theme->Color Theme:
You should see:
Light:
Spin2 Ironsheep Light
Spin2 Ironsheep Light for background Color
Dark: Spin2 Ironsheep Dark
Spin2 Ironsheep Dark for background Color
Spin2 Ironsheep Syntax <--- this appears to be the one you have selected
Choose "Spin2 Ironsheep Dark" to see if the Semantic coloring yields less white code
@ManAtWork said:
BTW, is there a way to assign an F-key to the action "close all terminal windows"? I often forget to close them so I get "task downloadP2 is already active" or "no propeller found on any port". Clicking on all the trashcan icons in the terminal window list in the lower right corner is somehow inconvenient.
OK, let's check your tasks file. You should see one or more sections similar to:
@"Stephen Moraco" said:
Check which theme you have selected. Code->Settings...->Theme->Color Theme:
...
Choose "Spin2 Ironsheep Dark" to see if the Semantic coloring yields less white code
Yes, it was set to "Spin2 Ironsheep Syntax". After setting it to "Spin2 Ironsheep Dark" most of the white text turned purple. Unfortunatelly, this doesn't work well with my monitor (looks somewhat blurred) and hurts my eyes. I'll see if I can find some adjustment to increase the contrast a bit... If not I'll change it back to the old setting.
I believe you'll want to change the "panel": value (arrow above).
I'm thinking "shared" or "dedicated" may be a better choice.
I tried both. It works for the compile tasks because the previous compile task is finished each time I restart it. So the terminal for that task is re-used. But it doesn't work for the downloadP2 task if it runs with the terminal option (-t). Of course, the terminal doesn't know if the P2 is finished outputting serial data or if more is to come. So I have to close the window manually. No matter if I chose "shared" or "dedicated" a dialog pops up
Unfortunatelly, I can't simply choose "restart task" by hitting cursor right and return. I have to use the mouse to click on it or press tab multiple times. Maybe there's an easy way to close the terminal with some key-combination (cokebottle-Z or something) I just don't know, yet.
BTW, the presentation yesterday was very interesting. Unfortunatelly, I was very tired so I fear I can't remember anything. So I'll keep asking clumsy questions.
Thanks for your help!
You might have seen the new features in our most recent P2 live forum!
Now, you can be an early adopter and experience these features yourself!
It's time to quickly evaluate the feature parity version of the new Language-Server-based VSCode Extension for P1 and P2 so I can get it released for all of us to use.
I'm looking for a few volunteers who would want to evaluate the new extension against their code. The key here is that the code must compile with PNut or Propeller Tool. For this effort, I'm NOT looking into FlexSpin compatibility with this initial testing.
My immediate focus is to ensure that there are no regressions relative to the way the current v1.9.16 Spin2 extension is working.
I believe the parser is more robust as I've been reviewing all my regression test code, and it's looking quite good.
Here's my ask:
You email me indicating interest and that you have time early this week to do this.
I'll reply with a .zip of the new extension and a link to a page with instructions (Today, Mon. or Tue.)
You follow the instructions to get your VSCode running the new Spin2 extension instead of the old one. (You can quickly revert this if you find a reason to.)
You visit many of your source files to see if they are not parsing correctly.
For each one that isn't, you send an email to me indicating what's not working, and I get it fixed before the live release
Sound like you want to help? You can email me volunteering at: "stephen at ironsheep dot biz"
I've just released v2.1.0 of our spin2 extension. This is the first Language-server-based version of the extension.
v2.1.0
**Feature Updates for both P1 and P2 **
Files included by the current file are parsed, and references to the included objects are validated
Documentation from the included object files is shown for Hover Text and Signature help
Live parsing on file change, allowing changes in one editor window to affect another editor window (e.g., You have a top-level spin file open and an object spin file open in 2nd window. Changes in the object file can immediately affect the top-level file.)
Display of errors found during parse are listed for each file parsed (and with Error Lens, errors show on affected line)
When a file is parsed, and errors are found, the file entry in the left panel file browser turns light red to highlight that the file contains errors
Many improvements in parsing / highlighting for both P1 and P2
Our new parse error reporting makes it easier to port P1 code to our P2. Simply copy the P1 file and adjust the suffix to .spin2. At this point, all non-supported P1 code is highlighted, and errors are shown describing the issues found.
If you see any issues with these new features please let us know by filing new issues at our code repo. (or email me directly.)
This represents a whole lot of change. Please be sensitive to things being different. My goal in this extension is to do our best to parse the language implemented by PNut and Propeller Tool. If any warnings are not correct relative to what these two tools do, please let me know, and I'll work to quickly get the issue fixed!
Possible Conflicts with other VSCode Extensions
Note: This extension 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. The older Spin extension can now be uninstalled with no loss of functionality.
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.
About this extension
You can always review the Spin2 Extension ChangeLog from within VSCode or at github for more details.
Reminder: The Spin2 extension is in the VSCode marketplace. After one has a working install of VSCode from within the VSCode Extensions panel, search for Spin2, install it, and you are good to go. Once installed it will automatically notify you of new update availability whenever I publish new updates.
If you are already using this extension and, for some reason, it did not update for you automatically, in VSCode, go to your extensions view (SHIFT+CMD+X), and type in spin2. On the left, the info panel for the extension should appear and will indicate that an update has happened or needs to happen. Update it if needed.
NOTE You may want to double-check that all older versions are removed from your .vscode/extensions folder after installing any new version.
If you find code that you believe is not highlighting correctly (yes, we will likely find some for a while yet...) then please file an issue at my github repository issues page
I also point out a number of extensions that make this an even better Spin2/Pasm2 development environment. See: my VSCode repo extensions page
There is more than just installing the extension as one needs to set up build and run facilities based on the compiler tools one is using and also based on the platform (Windows, Mac, RPi, Linux, etc.) To help us learn how to do this Ken posted a very useful VSCode P2 QuickByte.
There are also three platform-specific tasks installation pages:
What's next? Taking a short break, this was a lot of focused work... but then starting to add the features now enabled by our being Langauge Server based!
I've just released v2.2.0 and v2.2.1 of our spin2 extension. These are the first upgrades to our LSP based extension
The v2.2.1 release is round 1 of 2, where I'm rapidly fixing issues found by more advanced testing. Round two will follow in a couple of days.
v2.2.0 Awaken Feature: Show Definitions of a Symbol for P1 & P2
Peek at or go to the definition of variables/methods from where the variables/methods are being used.
Enables right-mouse commands "Go to Definition" and "Peek -> Peek Definition"
In spin, this works for method names, global variables, parameters, return values, method local variables, and pasm global labels.
v2.2.1 General bug fixes for P1 and P2
Repair filename validation in object includes - make checking the same as PNut/Propeller Tool
Ensure no parser Error/Warning/Information messages are returned when maxNumberOfReportedIssues is set to zero
Clean up issues with the new go-to definition feature (some cases were not recognized)
P1 repair hover detection for object#constant references
P2 add basic hover text for Streamer Constants
P1/P2 CON enhance parsing of operators used within RHS of assignment
P1/P2 enhance parsing when {comment} used within the line being parsed
P2 OBJ enhance parsing of object override values
P1/P2 PUB/PRI enhance parsing left-hand side of assignments
If you see any issues with these new features please let us know by filing new issues at our code repo. (or email me directly.)
This represents a whole lot of change. Please be sensitive to things being different. My goal in this extension is to do our best to parse the language implemented by PNut and Propeller Tool. If any warnings are not correct relative to what these two tools do, please let me know, and I'll work to quickly get the issue fixed!
I've just released v2.2.2 of our spin2 extension. This is more "dialing-in" of our LSP-based extension.
The v2.2.2 release is round 2 of 2, where I'm rapidly fixing issues found by more advanced testing.
v2.2.2
General bug fixes for P2 only (round 2)
P2 Add DRAFT handling of line continuation "..." - (support only in OBJ section for now!)
P2 Repair DAT pasm symbol offset calculations so highlights are in the correct position
P2 Add new built-in keyword "with" to syntax highlighter
General bug fixes for Both P1 and P2 (round 2)
P1 & P2 Adjusted parameter, return-value, and local variable name collision with global variable to produce error messages.
P1 & P2 Repair go to def'n for local variables (limit search scope to the current method)
P1 & P2 Repair go to def'n for local pasm labels (limit search scope to between the enclosing global pasm labels)
P1 & P2 Increase resolution on go to def'n - was line number only. It is now a line number with a character offset, so now it will position the cursor at the actual symbol within the line (e.g., good for go to enum declaration!)
P1 & P2 Repair DAT pasm parser so it doesn't leave pasm mode until the end of the DAT block
P1 & P2 Found and fixed a couple of crash causes
If you see any issues with these new features, please let us know by filing new issues at our code repo. (or email me directly.)
This move to a language server form caused a whole lot of change. Please be sensitive to things being different. My goal in this extension is to do our best to parse the language implemented by PNut and Propeller Tool. If any warnings are incorrect relative to what these two tools do, please let me know, and I'll work to fix the issue quickly!
Comments
Sounds great.
Good luck!
BTW, is there a way to assign an F-key to the action "close all terminal windows"? I often forget to close them so I get "task downloadP2 is already active" or "no propeller found on any port". Clicking on all the trashcan icons in the terminal window list in the lower right corner is somehow inconvenient.
I'll have to look...
NEWS
Fun Demo in today's P2 Live Forum.... See you all there!
@"Stephen Moraco" , you said at the live forum than somthing is broken with my screen. Themes or syntax highlighting is turned off or somehting. I can't tell because I'm used to what I see and don't know anything different. You said, there was a lot of "white text". This an example screenshot.

I know, the code looks ugly because of all the commented out debug()s. But should it look different?
Yes, I believe it should look different.
Check which theme you have selected. Code->Settings...->Theme->Color Theme:
You should see:
Light:
Spin2 Ironsheep Light
Spin2 Ironsheep Light for background Color
Dark:
Spin2 Ironsheep Dark
Spin2 Ironsheep Dark for background Color
Spin2 Ironsheep Syntax <--- this appears to be the one you have selected
Choose "Spin2 Ironsheep Dark" to see if the Semantic coloring yields less white code
OK, let's check your tasks file. You should see one or more sections similar to:
I believe you'll want to change the "panel": value (arrow above). See: VSCode docs Output behavior
I'm thinking "shared" or "dedicated" may be a better choice.
Please Let me know if this helps.
Yes, it was set to "Spin2 Ironsheep Syntax". After setting it to "Spin2 Ironsheep Dark" most of the white text turned purple. Unfortunatelly, this doesn't work well with my monitor (looks somewhat blurred) and hurts my eyes. I'll see if I can find some adjustment to increase the contrast a bit... If not I'll change it back to the old setting.
I tried both. It works for the compile tasks because the previous compile task is finished each time I restart it. So the terminal for that task is re-used. But it doesn't work for the downloadP2 task if it runs with the terminal option (-t). Of course, the terminal doesn't know if the P2 is finished outputting serial data or if more is to come. So I have to close the window manually. No matter if I chose "shared" or "dedicated" a dialog pops up

Unfortunatelly, I can't simply choose "restart task" by hitting cursor right and return. I have to use the mouse to click on it or press tab multiple times. Maybe there's an easy way to close the terminal with some key-combination (cokebottle-Z or something) I just don't know, yet.
BTW, the presentation yesterday was very interesting. Unfortunatelly, I was very tired so I fear I can't remember anything. So I'll keep asking clumsy questions.
Thanks for your help!
NEWS
You might have seen the new features in our most recent P2 live forum!
Now, you can be an early adopter and experience these features yourself!
It's time to quickly evaluate the feature parity version of the new Language-Server-based VSCode Extension for P1 and P2 so I can get it released for all of us to use.
I'm looking for a few volunteers who would want to evaluate the new extension against their code. The key here is that the code must compile with PNut or Propeller Tool.
For this effort, I'm NOT looking into FlexSpin compatibility with this initial testing.
My immediate focus is to ensure that there are no regressions relative to the way the current v1.9.16 Spin2 extension is working.
I believe the parser is more robust as I've been reviewing all my regression test code, and it's looking quite good.
Here's my ask:
Sound like you want to help? You can email me volunteering at: "stephen at ironsheep dot biz"
NEWS
Finally, After more than a month of work...
I've just released v2.1.0 of our spin2 extension. This is the first Language-server-based version of the extension.
If you see any issues with these new features please let us know by filing new issues at our code repo. (or email me directly.)
This represents a whole lot of change. Please be sensitive to things being different. My goal in this extension is to do our best to parse the language implemented by PNut and Propeller Tool. If any warnings are not correct relative to what these two tools do, please let me know, and I'll work to quickly get the issue fixed!
Possible Conflicts with other VSCode Extensions
Note: This extension 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. The older Spin extension can now be uninstalled with no loss of functionality.
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.
About this extension
You can always review the Spin2 Extension ChangeLog from within VSCode or at github for more details.
Reminder: The Spin2 extension is in the VSCode marketplace. After one has a working install of VSCode from within the VSCode Extensions panel, search for Spin2, install it, and you are good to go. Once installed it will automatically notify you of new update availability whenever I publish new updates.
If you are already using this extension and, for some reason, it did not update for you automatically, in VSCode, go to your extensions view (SHIFT+CMD+X), and type in spin2. On the left, the info panel for the extension should appear and will indicate that an update has happened or needs to happen. Update it if needed.
NOTE You may want to double-check that all older versions are removed from your .vscode/extensions folder after installing any new version.
If you find code that you believe is not highlighting correctly (yes, we will likely find some for a while yet...) then please file an issue at my github repository issues page
I also point out a number of extensions that make this an even better Spin2/Pasm2 development environment. See: my VSCode repo extensions page
There is more than just installing the extension as one needs to set up build and run facilities based on the compiler tools one is using and also based on the platform (Windows, Mac, RPi, Linux, etc.) To help us learn how to do this Ken posted a very useful VSCode P2 QuickByte.
There are also three platform-specific tasks installation pages:
What's next? Taking a short break, this was a lot of focused work... but then starting to add the features now enabled by our being Langauge Server based!
Enjoy!
Stephen
NEWS
I've just released v2.2.0 and v2.2.1 of our spin2 extension. These are the first upgrades to our LSP based extension
The v2.2.1 release is round 1 of 2, where I'm rapidly fixing issues found by more advanced testing. Round two will follow in a couple of days.
If you see any issues with these new features please let us know by filing new issues at our code repo. (or email me directly.)
This represents a whole lot of change. Please be sensitive to things being different. My goal in this extension is to do our best to parse the language implemented by PNut and Propeller Tool. If any warnings are not correct relative to what these two tools do, please let me know, and I'll work to quickly get the issue fixed!
NEWS
I've just released v2.2.2 of our spin2 extension. This is more "dialing-in" of our LSP-based extension.
The v2.2.2 release is round 2 of 2, where I'm rapidly fixing issues found by more advanced testing.
If you see any issues with these new features, please let us know by filing new issues at our code repo. (or email me directly.)
This move to a language server form caused a whole lot of change. Please be sensitive to things being different. My goal in this extension is to do our best to parse the language implemented by PNut and Propeller Tool. If any warnings are incorrect relative to what these two tools do, please let me know, and I'll work to fix the issue quickly!
For those of us that don't trust microsoft, will this work on vs-codium as well?
Yes. Need to futz with product.json to connect to the MS extension store though.