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

Refactor: refactor find def in LSP #606

Merged
merged 5 commits into from
Jul 18, 2023
Merged

Conversation

He1pa
Copy link
Contributor

@He1pa He1pa commented Jul 12, 2023

Privide functions find_def and resolver_var in LSP to find identifier definition scopeobj. Support finding definitions with different names in one identifier

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

2. What is the scope of this PR (e.g. component or file name):

LSP

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

refactor find_def in LSP.

a.b.c

before: Search all scope obj which name is c
after: Recursively lookup definitions on the inner most scope. Find definition of a, jump to a's scope and search b definition, and c.
So now we can lookup definitions of different names on one ident. It can be used for goto def, hover documents, etc.

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Other

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

  • N
  • Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

  • Unit test
  • Integration test
  • Benchmark (add benchmark stats below)
  • Manual test (add detailed scripts or steps below)
  • Other

@coveralls
Copy link
Collaborator

coveralls commented Jul 12, 2023

Pull Request Test Coverage Report for Build 5587176592

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 87.988%

Totals Coverage Status
Change from base Build 5584003002: 0.0%
Covered Lines: 2300
Relevant Lines: 2614

💛 - Coveralls

@Peefy Peefy added this to the v0.6.0 Release milestone Jul 12, 2023
@Peefy Peefy added the lsp label Jul 12, 2023
kclvm/tools/src/LSP/src/completion.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/util.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/util.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Show resolved Hide resolved
@He1pa He1pa changed the title Refactor: refactor find def in LSP. [WIP] Refactor: refactor find def in LSP Jul 13, 2023
@He1pa He1pa marked this pull request as draft July 13, 2023 03:18
Privide functions find_def and resolver_var in LSP to find identifier definition scopeobj.
Support finding definitions with different names in one identifier
@He1pa He1pa marked this pull request as ready for review July 17, 2023 11:53
@He1pa He1pa changed the title [WIP] Refactor: refactor find def in LSP Refactor: refactor find def in LSP Jul 18, 2023
kclvm/sema/src/resolver/mod.rs Show resolved Hide resolved
kclvm/tools/src/LSP/src/completion.rs Show resolved Hide resolved
kclvm/tools/src/LSP/src/completion.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Outdated Show resolved Hide resolved
kclvm/tools/src/LSP/src/goto_def.rs Show resolved Hide resolved
Copy link
Contributor

@Peefy Peefy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Peefy Peefy merged commit 2f6abbd into kcl-lang:main Jul 18, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Jul 18, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants