Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
f5577950
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f5577950
编写于
12月 16, 2017
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SQL editor: hyperlinks navigation error handle
上级
2a684ed0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
1 deletion
+35
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
...e/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
+3
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/NavigateObjectHandler.java
...beaver/ui/editors/sql/handlers/NavigateObjectHandler.java
+15
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLHyperlinkDetector.java
...s/dbeaver/ui/editors/sql/syntax/SQLHyperlinkDetector.java
+17
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
浏览文件 @
f5577950
...
...
@@ -32,6 +32,7 @@ import org.eclipse.jface.viewers.ISelectionProvider;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.IWorkbenchActionConstants
;
import
org.eclipse.ui.PlatformUI
;
import
org.eclipse.ui.dialogs.PreferencesUtil
;
import
org.eclipse.ui.internal.editors.text.EditorsPlugin
;
...
...
@@ -403,6 +404,8 @@ public abstract class SQLEditorBase extends BaseTextEditor implements IErrorVisu
addAction
(
menu
,
GROUP_SQL_EXTRAS
,
SQLEditorContributor
.
ACTION_CONTENT_ASSIST_PROPOSAL
);
addAction
(
menu
,
GROUP_SQL_EXTRAS
,
SQLEditorContributor
.
ACTION_CONTENT_ASSIST_TIP
);
addAction
(
menu
,
GROUP_SQL_EXTRAS
,
SQLEditorContributor
.
ACTION_CONTENT_ASSIST_INFORMATION
);
menu
.
insertBefore
(
IWorkbenchActionConstants
.
MB_ADDITIONS
,
ActionUtils
.
makeCommandContribution
(
getSite
(),
"org.jkiss.dbeaver.ui.editors.sql.navigate.object"
));
{
MenuManager
formatMenu
=
new
MenuManager
(
"Format"
,
"format"
);
IAction
formatAction
=
getAction
(
SQLEditorContributor
.
ACTION_CONTENT_FORMAT_PROPOSAL
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/NavigateObjectHandler.java
浏览文件 @
f5577950
...
...
@@ -24,12 +24,15 @@ import org.eclipse.jface.text.ITextSelection;
import
org.eclipse.jface.text.Region
;
import
org.eclipse.jface.text.TextViewer
;
import
org.eclipse.jface.text.hyperlink.IHyperlink
;
import
org.eclipse.swt.graphics.Image
;
import
org.eclipse.ui.IEditorPart
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.eclipse.ui.texteditor.IEditorStatusLine
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQLHyperlinkDetector
;
import
org.jkiss.utils.ArrayUtils
;
import
org.jkiss.utils.CommonUtils
;
public
class
NavigateObjectHandler
extends
AbstractHandler
{
...
...
@@ -65,7 +68,18 @@ public class NavigateObjectHandler extends AbstractHandler {
IRegion
curRegion
=
new
Region
(
selection
.
getOffset
(),
0
);
IHyperlink
[]
hyperLinks
=
hyperlinkDetector
.
detectHyperlinks
(
editor
.
getTextViewer
(),
curRegion
,
false
);
return
ArrayUtils
.
isEmpty
(
hyperLinks
)
?
null
:
hyperLinks
[
0
];
if
(!
ArrayUtils
.
isEmpty
(
hyperLinks
))
{
return
hyperLinks
[
0
];
}
String
lastKeyword
=
hyperlinkDetector
.
getLastKeyword
();
if
(!
CommonUtils
.
isEmpty
(
lastKeyword
))
{
IEditorStatusLine
statusLine
=
(
IEditorStatusLine
)
editor
.
getAdapter
(
IEditorStatusLine
.
class
);
if
(
statusLine
!=
null
)
{
statusLine
.
setMessage
(
true
,
"Can't find metadata object for name '"
+
lastKeyword
+
"'"
,
(
Image
)
null
);
}
editor
.
getEditorControl
().
getDisplay
().
beep
();
}
return
null
;
}
/*
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLHyperlinkDetector.java
浏览文件 @
f5577950
...
...
@@ -16,12 +16,14 @@
*/
package
org.jkiss.dbeaver.ui.editors.sql.syntax
;
import
org.eclipse.jface.text.BadLocationException
;
import
org.eclipse.jface.text.IRegion
;
import
org.eclipse.jface.text.ITextViewer
;
import
org.eclipse.jface.text.Region
;
import
org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector
;
import
org.eclipse.jface.text.hyperlink.IHyperlink
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.sql.SQLSyntaxManager
;
import
org.jkiss.dbeaver.model.struct.DBSObjectReference
;
import
org.jkiss.dbeaver.ui.editors.entity.EntityHyperlink
;
...
...
@@ -35,6 +37,8 @@ import java.util.List;
*/
public
class
SQLHyperlinkDetector
extends
AbstractHyperlinkDetector
{
static
protected
final
Log
log
=
Log
.
getLog
(
SQLHyperlinkDetector
.
class
);
private
SQLContextInformer
contextInformer
;
public
SQLHyperlinkDetector
(
SQLEditorBase
editor
,
SQLSyntaxManager
syntaxManager
)
...
...
@@ -63,6 +67,19 @@ public class SQLHyperlinkDetector extends AbstractHyperlinkDetector
}
}
public
String
getLastKeyword
()
{
final
SQLIdentifierDetector
.
WordRegion
wordRegion
=
this
.
contextInformer
.
getWordRegion
();
if
(
wordRegion
!=
null
)
{
final
IRegion
hlRegion
=
new
Region
(
wordRegion
.
identStart
,
wordRegion
.
identEnd
-
wordRegion
.
identStart
);
try
{
return
contextInformer
.
getEditor
().
getDocument
().
get
(
hlRegion
.
getOffset
(),
hlRegion
.
getLength
());
}
catch
(
BadLocationException
e
)
{
log
.
error
(
e
);
}
}
return
null
;
}
@Override
public
void
dispose
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录