Giter Club home page Giter Club logo

Comments (12)

brianking avatar brianking commented on August 10, 2024 2

I am not sure - probably like you I have these on my machine, so everything works from my PoV. That's a blind-spot we tend to have. Maybe @brianking, not being a developer day-in-day-out, has a more vanilla computer, where this could be tested.

I have Java and many other dev tools installed I am afraid. I still have grand illusions of being a developer.

from theia-blueprint.

brianking avatar brianking commented on August 10, 2024

Given the embedded domain use case, might it make sense to add in some C++ builtins?

from theia-blueprint.

vince-fugnitto avatar vince-fugnitto commented on August 10, 2024

Given the embedded domain use case, might it make sense to add in some C++ builtins?

@brianking I believe the idea should be to provide a streamlined application and not bloat it with default extensions that end-users might or might not need. In the end, end-users are free to install runtime plugins (through the extensions-view for additional plugins they require.

from theia-blueprint.

marcdumais-work avatar marcdumais-work commented on August 10, 2024

C/C++ debugging is an exception ATM, if we want to use @theia/cpp-debug. Since it's a Theia extension, it needs be present at built-time. We could decide to migrate to the equivalent CDT vscode extension: cdt-gdb-vscode. We already re-use their Debug Adapter in the @Theia extension.

from theia-blueprint.

koegel avatar koegel commented on August 10, 2024

IMHO Blueprint is about showcasing the power of the Theia platform with user-visible features. This will not lead to a small app size obviously, but does not matter for this purpose in my opinion. Adding C++ editing might be worth a consideration though to show even more capabilities.

from theia-blueprint.

marcdumais-work avatar marcdumais-work commented on August 10, 2024

@koegel I forgot to mention that there's a hidden trade-off involved: the extensions we bundle are not updatable (or un-installable). That's a pretty big limitation, not present when installed through the extensions view. (partly due to the fact that some of our packagings are static, e.g. AppImage)

Also, we might be depriving users from the experience of searching for the extension, reading its README, finding what operating-system-level dependencies are expected to be in place (all done from within the Theia-based app).

OS dependencies are a fragile aspect of bundling extensions, I think - e.g. one needs an acceptable version of a JDK installed for the java extension to work, clangd installed for vscode-clangd C/C++ to work, etc. So in practice, even bundling extensions for many languages, the experience may not typically be "key in hand", for any given one of them, depending on what happens to be installed on that computer.

Also providing all these OS-level dependencies, in addition to the extensions, for many languages, is why something like the theia-full image is so big.

from theia-blueprint.

koegel avatar koegel commented on August 10, 2024

@marcdumais-work Good points! I have not tried: What happens if no acceptable JDK or clangd is present? Is there any kind of user guidance?

from theia-blueprint.

marcdumais-work avatar marcdumais-work commented on August 10, 2024

I am not sure - probably like you I have these on my machine, so everything works from my PoV. That's a blind-spot we tend to have. Maybe @brianking, not being a developer day-in-day-out, has a more vanilla computer, where this could be tested.

The specifics are left to each language extension. In some cases it just doesn't work, and the user might not know why. We had this happen recently with an Erlang extension, that required a more recent tool chain vs what's available in Ubuntu repos. The LS would not start, but we did not know why.

from theia-blueprint.

marcdumais-work avatar marcdumais-work commented on August 10, 2024

I had an idea: use one of our Docker images, that's without installed JDK, to test:

$ docker run --init --rm -it -p 3000:3000 theiaide/theia:latest

I then installed the Java extension from within the IDE,
image

and triggered it by opening a .java file. Result:
image

Links:
"Java configuration runtime": https://github.com/redhat-developer/vscode-java/wiki/JDK-Requirements#java.configuration.runtimes
"Get the Java Develop...": https://developers.redhat.com/products/openjdk/download?sc_cid=701f2000000RWTnAAO

For C/C++ I installed the clangd extension. It comes close to solving the issue of missing clangd but failed, at least in the docker container i was using:
image

image

image

Peek 2021-05-03 19-04

from theia-blueprint.

marcdumais-work avatar marcdumais-work commented on August 10, 2024

@brianking do you have clangd installed? You use a Mac, correct?

from theia-blueprint.

brianking avatar brianking commented on August 10, 2024

@brianking do you have clangd installed? You use a Mac, correct?

I don't seem to right now.

from theia-blueprint.

marcdumais-work avatar marcdumais-work commented on August 10, 2024

I am curious if the vscode-clangd extension would be able to install a functional clangd for you.
You can follow the steps as per the images/movie above, if you want to give it a try.

from theia-blueprint.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.