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

[LFX] LSP quick fix for kcl compiler #997

Closed
He1pa opened this issue Jan 24, 2024 · 8 comments
Closed

[LFX] LSP quick fix for kcl compiler #997

He1pa opened this issue Jan 24, 2024 · 8 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed lexer Issues or PRs related to kcl lexer lsp

Comments

@He1pa
Copy link
Contributor

He1pa commented Jan 24, 2024

Provide quick fix capability with LSP for kcl compiler
image

How to apply

  1. Submit an application on the LFX membership platform.
  2. Complete the pretest
  3. Wait for the result

Pretest

To apply for this mentorship, you MUST finish a pre-test. Pre-test link: #1020

Detail

+ According to different errors, provide different quick_fix schemes in the KCL compiler,

That is, provide suggested_replacement in the structure below. Now, this field is almost entirely None

pub struct Message {
    pub range: Range,
    pub style: Style,
    pub message: String,
    pub note: Option<String>,
    pub suggested_replacement: Option<String>,
}

This field will be processed as a CodeAction response in the LSP, and provide quick fix capability in editor.

Appendix

LSP Overview:

LSP spec:

quick fix impl pr:

@He1pa He1pa added help wanted Extra attention is needed lexer Issues or PRs related to kcl lexer lsp labels Jan 24, 2024
@Ishani217
Copy link

Hey @He1pa
I would like to work on this issue under the LFX Mentorship Program.
Since the LFX Mentorship is not started yet, and is under project proposal period, I would like to break down this issue and start creating some child issues to QuickStart the work
//cc @zong-zhe

@Peefy Peefy added the good first issue Good for newcomers label Jan 28, 2024
@EshaanAgg
Copy link

EshaanAgg commented Feb 1, 2024

Hi! I would like to work on this issue under the upcoming LFX term. Are there any related issues to the same, which I can parse through or try to solve as pre-tasks for the same?

@He1pa He1pa assigned EshaanAgg and unassigned EshaanAgg Feb 2, 2024
@He1pa
Copy link
Contributor Author

He1pa commented Feb 2, 2024

Hi! I would like to work on this issue under the upcoming LFX term. Are there ant related issues to the same, which I can parse through or try to solve as pre-tasks for the same?

Sorry, I didn't understand what you meant 'Are there ant related issues to the same'?
But if you are interested in this, you can take a look at the previous PR first: #652
This is a very simple demo that achieves the effect in the picture above. It replaces the useless import stmt with an empty string so user can remove it by click in editor.

You can learn about LSP, https://code.visualstudio.com/api/language-extensions/overview

Finally, You can try to set up a development environment (Rust & LLVM), build an LSP binary locally and install the KCL extension(https://marketplace.visualstudio.com/items?itemName=kcl.kcl-vscode-extension) to experience it.

@EshaanAgg
Copy link

Hi @He1pa! Thanks for the detailed response. Since this is an LFX issue, I thought the same would be frozen for contributors until the mentees are officially announced, and thus, I asked for any other related child issues, sort of qualifying tasks for the term.

@He1pa
Copy link
Contributor Author

He1pa commented Feb 2, 2024

Hi @He1pa! Thanks for the detailed response. Since this is an LFX issue, I thought the same would be frozen for contributors until the mentees are officially announced, and thus, I asked for any other related child issues, sort of qualifying tasks for the term.

Do you want me to provide a pretest to determine candidates? I will provide a new issue as soon as possible, this issue is to solve a smaller but related problem

@He1pa He1pa changed the title [Feature Request] LSP quick fix for syntax error [Feature Request] LSP quick fix for kcl compiler Feb 2, 2024
@7h3-3mp7y-m4n
Copy link

hey @He1pa , I would like to work on this

@literalEval
Copy link

literalEval commented Feb 13, 2024

Hi @He1pa! Thanks for the detailed response. Since this is an LFX issue, I thought the same would be frozen for contributors until the mentees are officially announced, and thus, I asked for any other related child issues, sort of qualifying tasks for the term.

Do you want me to provide a pretest to determine candidates? I will provide a new issue as soon as possible, this issue is to solve a smaller but related problem

Hey @He1pa, can you please shed some light on the scope of this project ? Specifically, which types of errors or warnings are expected to be quick fixed ? Does the project cover every error possible ? Thanks in advance.

I have prior experience in building custom linters and custom fixes for errors. Please look at this issue where I created a documentation checking linter from scratch for the Dart/Flutter codebase, and this PR where I implemented quick fixes for the same.

Excited to work on this project.

@Peefy Peefy changed the title [Feature Request] LSP quick fix for kcl compiler [LFX] LSP quick fix for kcl compiler Mar 1, 2024
@Peefy
Copy link
Contributor

Peefy commented Apr 9, 2024

Dup with #1125

@Peefy Peefy closed this as completed Apr 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed lexer Issues or PRs related to kcl lexer lsp
Projects
None yet
Development

No branches or pull requests

6 participants