Skip to content

Intellisense in Lite Terminal #1423

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

Open
jtsalten opened this issue Aug 27, 2024 · 6 comments
Open

Intellisense in Lite Terminal #1423

jtsalten opened this issue Aug 27, 2024 · 6 comments
Labels
enhancement New feature or request priority/backlog

Comments

@jtsalten
Copy link

Type: Feature Request

We should have intellisense built-in in our websocket terminal so we can get commands autocompletion and also help for autocompletion of classes' name, methods and so on...

Extension version: 2.12.7
VS Code version: Code 1.92.2 (fee1edb8d6d72a0ddff41e5f71a671c23ed924b9, 2024-08-14T17:29:30.058Z)
OS version: Windows_NT x64 10.0.22621
Modes:

@isc-bsaviano isc-bsaviano added enhancement New feature or request priority/backlog labels Aug 27, 2024
@isc-bsaviano
Copy link
Contributor

I'm not sure command completion has any value but completion for class names, class members, system functions/variables would be nice. Not sure if there's a VS Code API for this, or if I need to implement some form of tab completion. Regardless, this is a lot of work and not something I can get to anytime soon.

@isc-bsaviano isc-bsaviano changed the title Intellisense in Websocket Terminal Intellisense in Lite Terminal Aug 27, 2024
@isc-lindensc
Copy link

The Community webterminal has implemented this already, so might be worth a look on how webterminal is doing it.

@hsyhhssyy
Copy link
Contributor

The Community webterminal has implemented this already, so might be worth a look on how webterminal is doing it.

Image

The community web terminal sends your input to the server via WebSocket to retrieve autocomplete suggestions.
However, the problem is that VSCode's pseudoterminal does not support any form of autocomplete.
You'll need to hack the I/O output to simulate this behavior.

@isc-bsaviano
Copy link
Contributor

Blocked by the finalization of the VS Code terminal completion API (microsoft/vscode#226562)

@hsyhhssyy
Copy link
Contributor

On the VSCode side, above issue introduces a proposed API called terminalCompletionProvider. We should wait for the finalization.

As for the IRIS side, the Community WebTerminal offers several server-side classes (WebTerminal.*.cls) that include support for auto-completion.

It appears that the Atelier WebSocket does not expose interfaces related to auto-completion, so unless we bring in server-side components, we might be limited to offering only basic syntax and keyword suggestions.

Alternatively, could we consider using the Community Terminal a optional choice of the WebSocket provider? For some older versions of IRIS where the Atelier terminal WebSocket isn't available, installing the Community Terminal might provide a comparable WebSocket interface.

@isc-bsaviano
Copy link
Contributor

It appears that the Atelier WebSocket does not expose interfaces related to auto-completion, so unless we bring in server-side components, we might be limited to offering only basic syntax and keyword suggestions.

Yes, I'm going to need to make server-side changes to implement this feature.

Alternatively, could we consider using the Community Terminal a optional choice of the WebSocket provider? For some older versions of IRIS where the Atelier terminal WebSocket isn't available, installing the Community Terminal might provide a comparable WebSocket interface.

We aren't going to do this. We don't want the extensions in the official pack to have dependencies on third-party tools. If you want a way to launch the WebTerminal from VS Code, consider installing this small extension developed by George James Software.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority/backlog
Projects
None yet
Development

No branches or pull requests

4 participants