Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish extensions to open-vsx #1802

Open
jjchico opened this issue Jun 18, 2020 · 40 comments
Open

Publish extensions to open-vsx #1802

jjchico opened this issue Jun 18, 2020 · 40 comments
Labels
Milestone

Comments

@jjchico
Copy link

jjchico commented Jun 18, 2020

Reason

Microsoft does not allow to use C/C++ extension with other editors. See microsoft/vscode-cpptools#6388 (comment)

We are working on an alternative solution for C/C++ code completion and navigation.


Temporary solution 1

You will need to install manually these extensions:

  1. Open extension in the Microsoft Marketplace following the link above
  2. Download extension's VSIX file by clicking on "Download Extension" in "Resources" section (right sidebar)
  3. Navigate to VSCodium Extensions view and click "...", select "Install from ".VSIX".
  4. Repeat for each VSIX/Extension.

Restart VSCodium.

Temporary solution 2

See #1802 (comment)


Hi!

I'm a VS Codium user, a FLOSS version of VS Code, it's the same code but without the Microsoft's telemetry and branding.

I want to request if possible to add the PlatformIO IDE extension on the open-vsx.org market so that we doesn't need to works with the Microsoft marketplace as it is unclear if it's legal to use it on VS Code forks, see here.

This is how to publish a new extension.

Thanks.

@alfredocdmiranda
Copy link

I am with the same "problem". It would be really nice to have it published to work with VSCodium.

@rafacouto
Copy link

It is technically possible:

@ivankravets Do you think platformio extension for codium is also legal?

@ivankravets ivankravets added this to the 2.0.0 milestone Jul 9, 2020
@ivankravets
Copy link
Member

PlatformIO extension for VSCode depends on C/C++ extension by Microsoft. We use it for code completion/navigation. How to resolve this issue?

@rafacouto
Copy link

This one? It is MIT licensed.

@ivankravets
Copy link
Member

@rafacouto Yes, is it possible to have it in the open-vcs registry as well?

@54696d21
Copy link

54696d21 commented Jul 18, 2020

it was already merged here open-vsx/publish-extensions#54 but it doesn't appear on open-vsx.org Probably because it isn't build correctly? Could you help me with fixing that #1884 please?

@ivankravets
Copy link
Member

I updated this issue and added temporary solution #1802

@yunuscukran
Copy link

yunuscukran commented Oct 16, 2020

I believe the Microsoft vscode-cpp extension you guys are using for code completion is incompatible with open-vsx. The linked discussions seem to imply that it's not legal to use the Microsoft C/C++ extension in any other product than VSCode.

I was able to use the clang language server instead and getting it working (in Eclipse Theia), by

  1. Deleting the ms cpp extension
  2. Removing it from platformio-vscode-ide 's package.json as a dependency
  3. Installing the clang extension
  4. Creating a compile_commands.json from the PIO terminal, and putting it in the root of the project.

PlatformIO is still complaining about the incompatibility but all code completion functionality seems to work. Note that I'm using clang only as a language server, and the builds are still being handled by PIO.

This suggests to me that it is possible to separate the build and language server tools, and with small configurations, PlatformIO can actually play well with the clangd language server and therefore be open-vsx compatible.

@ivankravets
Copy link
Member

@yunuscukran Thank you so much for your solution! I added it to the top of post.

We already have started research around C/C++ extension and replacement for it. Indeed, we use noly 5% functionality of that extension - just code completion and navigation. So, we would be happy to switch to something open source with better peformance and clang should be a great candidate here.

@ivankravets
Copy link
Member

@yunuscukran what is your feedback about clangd server? Do you like how does it work?

@BackMountainDevil
Copy link

This one? It is MIT licensed.

That one called vscode-cpptools is under Microsoft License, not MIT, which made this issue-There is no a c/c++ extension on VSCodium marketplace #6518

@yunuscukran
Copy link

@yunuscukran what is your feedback about clangd server? Do you like how does it work?

Hi,

The functionality regarding language features is good!

One aspect which I think is hacky is that the default place for compile_commands.json must be redefined in the project settings, and the actual act of creating the file with a PIO command must be called somewhere, via a post-build script for example. So right now clangs works with a modified PIO project.

@yunuscukran
Copy link

Any updates on switching to clangd for the language server? It seems to me what is needed is simply the generation of a compile_commands.json file on project creation and occasional re-creations after builds.

@ivankravets
Copy link
Member

We depend on:

@marcdumais-work
Copy link

Hi @ivankravets

I hope you can switch to vscode-clangd ASAP - it's rapidly improving and gaining features, as is clangd. I have asked one of our contributors an update about one of your two blocking issues - I hope he can help.

I think coming together and collaborating, us non-Visual-Studio product/framework makers, open registry provider and extension consumers, to offer a better solution, vs the superficiallty-FOSS (really proprietary) extension, that we can't use anyway, is the best thing we can do.

@jerabaul29
Copy link

Any update on this?

I think this may be quite useful for you to release as open-vsx in order to keep users :)

For example, my main motivation for using platformio nowadays compared with Arduino IDE 2.0 is that it lets me use my favorite editor of the moment (before the Arduino IDE 2.0 came out, my main motivation for using platformio was to get linter and static analysis which was not available on Arduino 1.8, but now that Arduino IDE 2.0 is getting this and it works nicely already, this removes this part of the extra value of platformio). For me nowadays editor of choice means onivim2. So if I cannot get platformio to work for onivim2, I think that I will (unfortunately) default to switching to Arduino IDE 2.0, as I am really tired of the sluggishness of vscode and similar.

@ouinouin
Copy link

Hi,
Please release us from false opensourceness of microsoft that void many people from using the platformio extension.

@cab404
Copy link

cab404 commented Apr 2, 2021

Since C++ is present by default on VSCode anyway, maybe just drop it from deps and add popup with download link to vsix?

This would be a quick fix, allowing both adding PlatformIO to open-vsx and moving on with previous completion engine.

@HKalbasi
Copy link

@cab404 can you do it yourself and publish a fork in open-vsx?

@jjchico
Copy link
Author

jjchico commented Jun 14, 2021

Since C++ is present by default on VSCode anyway, maybe just drop it from deps and add popup with download link to vsix?

This would be a quick fix, allowing both adding PlatformIO to open-vsx and moving on with previous completion engine.

The problem, already stated above, is that license of vscode-cpptools prevents using it out of non-free MS VS Code. Suggesting the user to just circumvent the legal restriction is not appropriate.

@jerabaul29
Copy link

But the idea regarding the vscode-cpptools was to instead to move to the clang tool that is fully open and permissive license, right? :) .

@jankeromnes
Copy link

Hello! I'd love to help get the PlatformIO published to OpenVSX. Is there anything I can do to help? 🙂

@ivankravets
Copy link
Member

@jankeromnes Does PlatformIO IDE extension work with Theia if you install it manually? The last time when I tested it, it didn't work. Theia does not support VSCode's API on which PlatformIO IDE extension depends.

@jankeromnes
Copy link

jankeromnes commented Sep 29, 2021

@ivankravets I'm not sure about Theia, but Gitpod, openvscode-server and VSCodium all use stock VS Code today (and Theia support in Gitpod has been deprecated).

@ivankravets
Copy link
Member

Wow! Founders of Theia switched to VSCode for Gitpod. Great decision!

I don't see C/C++ extension on Gitpod. PlatformIO IDE depends on it.

@jankeromnes
Copy link

jankeromnes commented Sep 29, 2021

@ivankravets Yes, unfortunately ms-vscode.cpptools is not open-source, so it cannot be published to OpenVSX. (Gitpod still sources extensions from OpenVSX, just like VSCodium et al.)

So, as long as platformio.platformio-ide has a strict dependency on a closed-source extension, it cannot be published to OpenVSX either.

A promising solution discussed above would be to drop the dependency to the closed-source ms-vscode.cpptools extension, and replace it with a dependency to the open-source extension vscode-clangd instead. Could something like this be technically possible?

@ivankravets
Copy link
Member

@jankeromnes We would like to resolve this issue as soon as possible, but there are technical issues. Please read this topic from the beginning. For example, #1802 (comment)

@JonasHelming
Copy link

FYI, vscode-clangd is available on open VSX in the meantime: clangd/vscode-clangd#243

@sethvoltz
Copy link

@ivankravets has there been any progress on this? I am running in GitPod and the temporary workaround seemed to work, until I tried to open the Home page and it failed, as well as pio and platformio commands missing on CLI.

@Zipdox2
Copy link

Zipdox2 commented Feb 14, 2023

I second using clangd. I use clangd for all my C work in VSCodium.

@qwertychouskie
Copy link

With #1802 (comment) showing that the clang language server does work, is there any other holdup for publishing PlatformIO on https://open-vsx.org?

@noahbliss
Copy link

Bump.

@marek22k
Copy link

Hi, how can I install the plugin in VSCodium? I can not find it.
pic

@gilex-dev
Copy link

gilex-dev commented Oct 7, 2023

@alex-blueguardianco
Copy link

Any updates on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests