-
Notifications
You must be signed in to change notification settings - Fork 39
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
Ease support of remote environments #59
Comments
This is a good idea, and would also help with Docker and WSL support (for people who aren't using the respective |
@bscan I feel that for But sure, that's one way to go about it. It also would highlight the dependencies for this part of the code, which I think are quite minimal but still =) I'd say generally anything works as long as it gets split up from the JS/IDE part, since this extension isn't about supporting |
@bscan I have given it some more thought and I think there's a 5th step that would be next to required for such advanced scenarios: customizable mapping of paths. In https://github.com/richterger/Perl-LanguageServer this is already supported but I feel with extra inspiration from https://github.com/FractalBoy/perl-language-server where configuration allows to reference workspace directory, this will help with "Go to definition" functionality for the scripting language. Also, regarding note on a filesystem, stuff like configuration files for Does these improvements still sound sane enough? =) |
Haha, pretty accurate. The overall design of the Navigator is certainly fairly unusual. The reason it is node.js based is for portability reasons and ease of install. For most uses, you can simply install from the Marketplace and it will just work. No need to do any cpan installs or use a package manager. Similarly, due to the bundling, the perl code automatically stays updated with new releases, and there's no opportunity for mismatch between the perl code and the vscode extension. Being in node.js also allows me to leverage the Microsoft LSP libraries, which is also nice for compatibility and stability.
All dependencies are currently bundled in the extension, which enables the Navigator to work against a bare bones install of Perl anywhere as old as version 5.8. The two bundled dependencies are For the remote running, I'm surprised code-server doesn't have a more comprehensive solution for dealing with these things. For the vscode remote extensions, all extensions simply work without any modification. Otherwise, it seems like all extension developers would need to add the workspace mappings and similar. Overall yes, it makes sense though. WSL has a similar mapping need where a file may be |
I just gave code-server a try and it worked very well for me out of the box. The OpenVSX version of Perl Navigator also worked instantly without any configuration at all (image below). Overall I'm very impressed with code-server, and I'll make sure to upload new versions of the Navigator to open-vsx to support it (and the other open source vscode variants). Although now I'm also re-reading your initial request and trying to understand what you are trying to do. If you have a remote development environment, why not run |
@bscan Yeah, I probably should rephrase the description of my issue more clearly. It is true that your extension works fine in And thus, the real struggle is that I want/need to have IDE with completion and stuff on one machine(where Git and currently open workspace is) and language server or whatever backs it up on another(where final artifact is deployed, yielding the same code just by a different path 95% of the time), since I find that it's the advantage of the technology - language server can be deployed somewhere else than the client in order to provide most benefit. It would be a real hustle to use I'd say it's pretty much the same deal with containers, especially if one targets Hope I get my point across. In that maybe somewhat extra complicated but really "enterprise" setup, https://github.com/FractalBoy/perl-language-server currently mostly just works, if only it had path mapping =) But I'm really interested in trying out what you've done here once such configuration will be possible |
First of all, I totally admire the the work done in this project. This is the 3rd
VS Code
extension I'm trying today and so far seems quite promising, however, I need to give more context.I'm currently trying to being using code-server in my development routine, since I was long yearning for a nice in-browser IDE that can be deployed on my in-office PC. The nature of my development environment happens to be that the code in the current workspace/project gets deployed onto remote machine(available via SSH) that contains all of the necessary dependencies, required for it to be successfully executed. Keeping the dependencies or trying to run them locally in a container is 99% unfeasible due to the architecture.
I however would fancy very much to have auto-completion and insight into all of the available code(the project and its 3rd party dependencies) on the office PC I run
code-server
from.Due to glorious licensing issues, only
VS Code
currently hasRemote Extensions
support, so I can't utilize that for your extension.I saw the discussion in #33 regarding executing Perl in
Docker
and I tried to do the same withSSH
but failed sincePerl
scripts that make bulk of the actual work are hidden as assets of this add-on and path to them can't be mangled with via the configuration.Thus, I propose those few following steps to improve the situation:
LSP Server
code depends on Perl code only by execution and not by sharing files(this translates harder via stuff such asSSH
)Perl
code, instead of hard-coded path to the assetsVS Code
can have easier time accessing itI assume that after this hopefully simple clean up, it would barely matter whether the environment is a container, a remote machine or something else, as long as execution of
Perl
code can be delegated there.So far I've tried https://github.com/richterger/Perl-LanguageServer which has somewhat poor auto-completion and https://github.com/FractalBoy/perl-language-server which unexpectedly ceases to function over SSH, possibly because an issue similar to FractalBoy/perl-language-server#103 or not. So my hopes for "the third time is a charm" case are quite high =)
The text was updated successfully, but these errors were encountered: