Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
a6faad2a
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
a6faad2a
编写于
2月 08, 2017
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Big SQL files parser fix
上级
95316537
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
38 addition
and
29 deletion
+38
-29
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
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java
...g/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java
+35
-28
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
浏览文件 @
a6faad2a
...
...
@@ -385,7 +385,9 @@ public abstract class SQLEditorBase extends BaseTextEditor {
{
// Refresh syntax
SQLDialect
dialect
=
getSQLDialect
();
if
(
dialect
==
syntaxManager
.
getDialect
())
{
return
;
}
syntaxManager
.
init
(
dialect
,
getActivePreferenceStore
());
ruleManager
.
refreshRules
(
getDataSource
(),
getEditorInput
());
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java
浏览文件 @
a6faad2a
...
...
@@ -116,9 +116,10 @@ public class SQLRuleManager extends RuleBasedScanner {
public
void
refreshRules
(
DBPDataSource
dataSource
,
IEditorInput
editorInput
)
{
boolean
minimalRules
=
false
;
File
file
=
EditorUtils
.
getLocalFileFromInput
(
editorInput
);
if
(
file
!=
null
&&
file
.
length
()
>
MAX_FILE_LENGTH_FOR_RULES
)
{
return
;
minimalRules
=
true
;
}
/*final Color backgroundColor = null;unassigned || dataSource != null ?
getColor(SQLConstants.CONFIG_COLOR_BACKGROUND, SWT.COLOR_WHITE) :
...
...
@@ -185,8 +186,10 @@ public class SQLRuleManager extends RuleBasedScanner {
// Add generic whitespace rule.
rules
.
add
(
new
WhitespaceRule
(
new
TextWhiteSpaceDetector
()));
// Add numeric rule
rules
.
add
(
new
NumberRule
(
numberToken
));
if
(!
minimalRules
)
{
// Add numeric rule
rules
.
add
(
new
NumberRule
(
numberToken
));
}
DelimiterRule
delimRule
=
new
DelimiterRule
(
syntaxManager
.
getStatementDelimiters
(),
delimiterToken
);
rules
.
add
(
delimRule
);
...
...
@@ -202,32 +205,34 @@ public class SQLRuleManager extends RuleBasedScanner {
}
}
// Add word rule for keywords, types, and constants.
WordRule
wordRule
=
new
WordRule
(
new
SQLWordDetector
(),
otherToken
,
true
);
for
(
String
reservedWord
:
dialect
.
getReservedWords
())
{
wordRule
.
addWord
(
reservedWord
,
keywordToken
);
}
for
(
String
function
:
dialect
.
getFunctions
(
dataSource
))
{
wordRule
.
addWord
(
function
,
typeToken
);
}
for
(
String
type
:
dialect
.
getDataTypes
(
dataSource
))
{
wordRule
.
addWord
(
type
,
typeToken
);
}
final
String
blockHeaderString
=
dialect
.
getBlockHeaderString
();
if
(!
CommonUtils
.
isEmpty
(
blockHeaderString
))
{
wordRule
.
addWord
(
blockHeaderString
,
blockHeaderToken
);
}
String
[][]
blockBounds
=
dialect
.
getBlockBoundStrings
();
if
(
blockBounds
!=
null
)
{
for
(
String
[]
block
:
blockBounds
)
{
if
(
block
.
length
!=
2
)
{
continue
;
if
(!
minimalRules
)
{
// Add word rule for keywords, types, and constants.
WordRule
wordRule
=
new
WordRule
(
new
SQLWordDetector
(),
otherToken
,
true
);
for
(
String
reservedWord
:
dialect
.
getReservedWords
())
{
wordRule
.
addWord
(
reservedWord
,
keywordToken
);
}
for
(
String
function
:
dialect
.
getFunctions
(
dataSource
))
{
wordRule
.
addWord
(
function
,
typeToken
);
}
for
(
String
type
:
dialect
.
getDataTypes
(
dataSource
))
{
wordRule
.
addWord
(
type
,
typeToken
);
}
final
String
blockHeaderString
=
dialect
.
getBlockHeaderString
();
if
(!
CommonUtils
.
isEmpty
(
blockHeaderString
))
{
wordRule
.
addWord
(
blockHeaderString
,
blockHeaderToken
);
}
String
[][]
blockBounds
=
dialect
.
getBlockBoundStrings
();
if
(
blockBounds
!=
null
)
{
for
(
String
[]
block
:
blockBounds
)
{
if
(
block
.
length
!=
2
)
{
continue
;
}
wordRule
.
addWord
(
block
[
0
],
blockBeginToken
);
wordRule
.
addWord
(
block
[
1
],
blockEndToken
);
}
wordRule
.
addWord
(
block
[
0
],
blockBeginToken
);
wordRule
.
addWord
(
block
[
1
],
blockEndToken
);
}
rules
.
add
(
wordRule
);
}
rules
.
add
(
wordRule
);
final
String
blockToggleString
=
dialect
.
getBlockToggleString
();
if
(!
CommonUtils
.
isEmpty
(
blockToggleString
))
{
...
...
@@ -244,8 +249,10 @@ public class SQLRuleManager extends RuleBasedScanner {
}
}
// Parameter rule
rules
.
add
(
new
ParametersRule
(
parameterToken
));
if
(!
minimalRules
)
{
// Parameter rule
rules
.
add
(
new
ParametersRule
(
parameterToken
));
}
IRule
[]
result
=
new
IRule
[
rules
.
size
()];
rules
.
toArray
(
result
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录