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

feat: add reference and definition provider #145

Merged
merged 5 commits into from
Feb 13, 2025

Conversation

Cythia828
Copy link
Collaborator

@Cythia828 Cythia828 commented Sep 25, 2024

feat

支持 #162 跳转到定义、跳转到引用位置功能

  • 支持跳转到引用、跳转到定义
  • 支持外部控制跳转到引用、跳转到定义配置的开关,如下图所示:
image

需要注意

  • 跳转到引用的默认快捷键是Shift+F12,但由于大家的使用习惯是Command+click,所以需要关注下

当你在 Monaco Editor 中配置 references 为 true 而 definitions 为 false 时,Command + Click (或 Ctrl + Click) 无法跳转到引用,这是因为 Monaco Editor 的默认行为是:Command + Click 主要用于跳转到 定义 (definitions),而不是引用 (references)。 即使你启用了 references 功能,Command + Click 仍然优先处理 DefinitionProvider,因为它被设计为跳转到定义的快捷方式。

ReferenceProvider 提供的是“查找所有引用”的功能,这通常通过右键菜单或自定义命令来触发,而不是 Command + Click。 Command + Click 的行为是由 Monaco Editor 的核心功能决定的,它与 ReferenceProvider 和 DefinitionProvider 的启用状态之间没有直接的逻辑关联。 Command + Click 始终优先尝试跳转到定义,只有当 DefinitionProvider 无法提供定义时,它才可能尝试其他行为。

常规使用跳转到定义、引用功能时,我们都是配套打开的,此时,我们通过Command + Click 可以进行跳转到定义和引用。通常不会只打开跳转到引用,而不打开跳转到定义。如果只打开跳转到引用,而不打开跳转到定义,那么我们通过 右键唤起菜单跳到引用,通过选择某一个具体引用进行跳转,这个操作也是流畅且合理的。

预览

iShot_2024-12-02_18 01 39

预览地址

https://cythia828.github.io/monaco-sql-languages/

@liuxy0551
Copy link
Collaborator

How can I use them?

@Cythia828
Copy link
Collaborator Author

How can I use them?

这两个provider作为基础功能已经为你注册好了,在你编辑sql的时候,在光标实体处按住command加点击,如果当前实体是引用实体,就会跳转到其定义的地方(即CREATE的地方);如果当前实体是定义实体,则会显示出使用了当前实体的地方,如下图

image

src/languageFeatures.ts Show resolved Hide resolved
src/languageFeatures.ts Show resolved Hide resolved
src/languageFeatures.ts Outdated Show resolved Hide resolved
src/setupLanguageMode.ts Outdated Show resolved Hide resolved
src/languageFeatures.ts Outdated Show resolved Hide resolved
@HaydenOrz
Copy link
Collaborator

HaydenOrz commented Oct 21, 2024

deploy website到自己的仓库上,让review的人可以预览

@liuxy0551
Copy link
Collaborator

liuxy0551 commented Oct 22, 2024

deploy website到自己的仓库上,让review的人可以预览

@Cythia828package.json "deploy" 命令中的 "DTStack" 改为自己的名称,再执行 npm run deploy

@Cythia828
Copy link
Collaborator Author

deploy website到自己的仓库上,让review的人可以预览

@Cythia828package.json "deploy" 命令中的 "DTStack" 改为自己的名称,再执行 npm run deploy

@Cythia828 Cythia828 closed this Oct 22, 2024
@Cythia828 Cythia828 reopened this Oct 22, 2024
@Cythia828 Cythia828 force-pushed the feat_reference_definition branch 3 times, most recently from 540687d to 59a541e Compare November 14, 2024 02:52
@Cythia828 Cythia828 force-pushed the feat_reference_definition branch from 59a541e to ee61c06 Compare November 14, 2024 02:54
src/languageFeatures.ts Outdated Show resolved Hide resolved
src/languageFeatures.ts Outdated Show resolved Hide resolved
@JackWang032 JackWang032 self-requested a review February 13, 2025 09:13
@mumiao mumiao merged commit 4b9aa93 into DTStack:main Feb 13, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants