Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
c660e12c
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,发现更多精彩内容 >>
提交
c660e12c
编写于
6月 30, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SQL model refactoring
Former-commit-id:
41decd8a
上级
2b187278
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
215 addition
and
160 deletion
+215
-160
plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF
plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/SQLSyntaxManager.java
...ore/src/org/jkiss/dbeaver/model/sql/SQLSyntaxManager.java
+123
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/SQLUtils.java
...beaver.core/src/org/jkiss/dbeaver/model/sql/SQLUtils.java
+2
-3
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/format/SQLFormatter.java
.../src/org/jkiss/dbeaver/model/sql/format/SQLFormatter.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/format/SQLFormatterConfiguration.java
...s/dbeaver/model/sql/format/SQLFormatterConfiguration.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/format/tokenized/FormatterConstants.java
...beaver/model/sql/format/tokenized/FormatterConstants.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/format/tokenized/FormatterToken.java
...ss/dbeaver/model/sql/format/tokenized/FormatterToken.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/format/tokenized/SQLTokenizedFormatter.java
...ver/model/sql/format/tokenized/SQLTokenizedFormatter.java
+3
-3
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/format/tokenized/SQLTokensParser.java
...s/dbeaver/model/sql/format/tokenized/SQLTokensParser.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
...e/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
+24
-18
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorSourceViewerConfiguration.java
...er/ui/editors/sql/SQLEditorSourceViewerConfiguration.java
+10
-11
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/CopyUnformattedTextAction.java
...er/ui/editors/sql/handlers/CopyUnformattedTextAction.java
+10
-8
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProposal.java
.../dbeaver/ui/editors/sql/syntax/SQLCompletionProposal.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLFormattingStrategy.java
.../dbeaver/ui/editors/sql/syntax/SQLFormattingStrategy.java
+3
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLHyperlinkDetector.java
...s/dbeaver/ui/editors/sql/syntax/SQLHyperlinkDetector.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLPartitionScanner.java
...ss/dbeaver/ui/editors/sql/syntax/SQLPartitionScanner.java
+9
-8
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLReconcilingStrategy.java
...dbeaver/ui/editors/sql/syntax/SQLReconcilingStrategy.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java
...g/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java
+16
-93
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLWordPartDetector.java
...ss/dbeaver/ui/editors/sql/syntax/SQLWordPartDetector.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/templates/SQLTemplatesPage.java
...ss/dbeaver/ui/editors/sql/templates/SQLTemplatesPage.java
+1
-3
未找到文件。
plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF
浏览文件 @
c660e12c
...
...
@@ -97,7 +97,7 @@ Export-Package: org.jkiss.dbeaver,
org.jkiss.dbeaver.ui.editors.entity.handlers,
org.jkiss.dbeaver.ui.editors.object,
org.jkiss.dbeaver.ui.editors.sql,
org.jkiss.dbeaver.
ui.editors
.sql.format,
org.jkiss.dbeaver.
model
.sql.format,
org.jkiss.dbeaver.ui.editors.sql.handlers,
org.jkiss.dbeaver.ui.editors.sql.indent,
org.jkiss.dbeaver.ui.editors.sql.log,
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/SQLSyntaxManager.java
0 → 100644
浏览文件 @
c660e12c
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2015 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.model.sql
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect
;
import
java.util.LinkedHashSet
;
import
java.util.Set
;
import
java.util.StringTokenizer
;
/**
* SQLSyntaxManager.
* <p/>
* Contains information about some concrete datasource underlying database syntax.
* Support runtime change of datasource (reloads syntax information)
*/
public
class
SQLSyntaxManager
{
@NotNull
private
SQLDialect
sqlDialect
;
@Nullable
private
String
quoteSymbol
;
private
char
structSeparator
;
@NotNull
private
String
catalogSeparator
;
@NotNull
private
Set
<
String
>
statementDelimiters
=
new
LinkedHashSet
<
String
>();
//SQLConstants.DEFAULT_STATEMENT_DELIMITER;
private
char
escapeChar
;
private
boolean
unassigned
;
public
SQLSyntaxManager
()
{
}
/**
* Returns true if this syntax manager wasn't assigned to a some particular data source container/ SQL dialect
*/
public
boolean
isUnassigned
()
{
return
unassigned
;
}
@NotNull
public
SQLDialect
getDialect
()
{
return
sqlDialect
;
}
public
char
getStructSeparator
()
{
return
structSeparator
;
}
@NotNull
public
String
getCatalogSeparator
()
{
return
catalogSeparator
;
}
@NotNull
public
Set
<
String
>
getStatementDelimiters
()
{
return
statementDelimiters
;
}
@Nullable
public
String
getQuoteSymbol
()
{
return
quoteSymbol
;
}
public
char
getEscapeChar
()
{
return
escapeChar
;
}
public
void
setDataSource
(
@Nullable
SQLDataSource
dataSource
)
{
this
.
unassigned
=
dataSource
==
null
;
this
.
statementDelimiters
.
clear
();
if
(
dataSource
==
null
)
{
sqlDialect
=
new
BasicSQLDialect
();
quoteSymbol
=
null
;
structSeparator
=
SQLConstants
.
STRUCT_SEPARATOR
;
catalogSeparator
=
String
.
valueOf
(
SQLConstants
.
STRUCT_SEPARATOR
);
escapeChar
=
'\\'
;
statementDelimiters
.
add
(
SQLConstants
.
DEFAULT_STATEMENT_DELIMITER
);
}
else
{
sqlDialect
=
dataSource
.
getSQLDialect
();
quoteSymbol
=
sqlDialect
.
getIdentifierQuoteString
();
structSeparator
=
sqlDialect
.
getStructSeparator
();
catalogSeparator
=
sqlDialect
.
getCatalogSeparator
();
sqlDialect
.
getSearchStringEscape
();
escapeChar
=
'\\'
;
if
(!
dataSource
.
getContainer
().
getPreferenceStore
().
getBoolean
(
DBeaverPreferences
.
SCRIPT_IGNORE_NATIVE_DELIMITER
))
{
statementDelimiters
.
add
(
sqlDialect
.
getScriptDelimiter
().
toLowerCase
());
}
String
extraDelimiters
=
dataSource
.
getContainer
().
getPreferenceStore
().
getString
(
DBeaverPreferences
.
SCRIPT_STATEMENT_DELIMITER
);
StringTokenizer
st
=
new
StringTokenizer
(
extraDelimiters
,
" \t,"
);
while
(
st
.
hasMoreTokens
())
{
statementDelimiters
.
add
(
st
.
nextToken
());
}
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/sql/SQLUtils.java
浏览文件 @
c660e12c
...
...
@@ -32,9 +32,8 @@ import org.jkiss.dbeaver.model.exec.DBCSession;
import
org.jkiss.dbeaver.model.struct.DBSAttributeBase
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.DBSTypedObject
;
import
org.jkiss.dbeaver.ui.editors.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.ui.editors.sql.format.tokenized.SQLTokenizedFormatter
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQLSyntaxManager
;
import
org.jkiss.dbeaver.model.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.model.sql.format.tokenized.SQLTokenizedFormatter
;
import
org.jkiss.utils.CommonUtils
;
import
org.jkiss.utils.Pair
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
ui/editors
/sql/format/SQLFormatter.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
model
/sql/format/SQLFormatter.java
浏览文件 @
c660e12c
...
...
@@ -15,7 +15,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.
ui.editors
.sql.format
;
package
org.jkiss.dbeaver.
model
.sql.format
;
/**
...
...
@@ -29,5 +29,5 @@ public interface SQLFormatter {
*
* @return formatted version
*/
public
String
format
(
String
source
,
SQLFormatterConfiguration
configuration
);
String
format
(
String
source
,
SQLFormatterConfiguration
configuration
);
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
ui/editors
/sql/format/SQLFormatterConfiguration.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
model
/sql/format/SQLFormatterConfiguration.java
浏览文件 @
c660e12c
...
...
@@ -16,10 +16,10 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.
ui.editors
.sql.format
;
package
org.jkiss.dbeaver.
model
.sql.format
;
import
org.jkiss.dbeaver.model.DBPKeywordType
;
import
org.jkiss.dbeaver.
ui.editors.sql.syntax
.SQLSyntaxManager
;
import
org.jkiss.dbeaver.
model.sql
.SQLSyntaxManager
;
/**
* SQLFormatterConfiguration
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
ui/editors
/sql/format/tokenized/FormatterConstants.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
model
/sql/format/tokenized/FormatterConstants.java
浏览文件 @
c660e12c
...
...
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.
ui.editors
.sql.format.tokenized
;
package
org.jkiss.dbeaver.
model
.sql.format.tokenized
;
class
FormatterConstants
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
ui/editors
/sql/format/tokenized/FormatterToken.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
model
/sql/format/tokenized/FormatterToken.java
浏览文件 @
c660e12c
...
...
@@ -19,7 +19,7 @@
/*
* FormatterToken
*/
package
org.jkiss.dbeaver.
ui.editors
.sql.format.tokenized
;
package
org.jkiss.dbeaver.
model
.sql.format.tokenized
;
class
FormatterToken
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
ui/editors
/sql/format/tokenized/SQLTokenizedFormatter.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
model
/sql/format/tokenized/SQLTokenizedFormatter.java
浏览文件 @
c660e12c
...
...
@@ -16,10 +16,10 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.
ui.editors
.sql.format.tokenized
;
package
org.jkiss.dbeaver.
model
.sql.format.tokenized
;
import
org.jkiss.dbeaver.
ui.editors
.sql.format.SQLFormatter
;
import
org.jkiss.dbeaver.
ui.editors
.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.
model
.sql.format.SQLFormatter
;
import
org.jkiss.dbeaver.
model
.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
import
org.jkiss.utils.Pair
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
ui/editors
/sql/format/tokenized/SQLTokensParser.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/
model
/sql/format/tokenized/SQLTokensParser.java
浏览文件 @
c660e12c
...
...
@@ -16,9 +16,9 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.
ui.editors
.sql.format.tokenized
;
package
org.jkiss.dbeaver.
model
.sql.format.tokenized
;
import
org.jkiss.dbeaver.
ui.editors
.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.
model
.sql.format.SQLFormatterConfiguration
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
浏览文件 @
c660e12c
...
...
@@ -55,11 +55,11 @@ import org.jkiss.dbeaver.model.DBPPreferenceStore;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.sql.*
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.ui.ICommandIds
;
import
org.jkiss.dbeaver.ui.ICommentsSupport
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQLPartitionScanner
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQLSyntaxManager
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQLRuleManager
;
import
org.jkiss.dbeaver.model.sql.SQLSyntaxManager
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.*
;
import
org.jkiss.dbeaver.ui.editors.sql.templates.SQLTemplatesPage
;
import
org.jkiss.dbeaver.ui.editors.sql.util.SQLSymbolInserter
;
...
...
@@ -79,6 +79,8 @@ public abstract class SQLEditorBase extends BaseTextEditor {
@NotNull
private
final
SQLSyntaxManager
syntaxManager
;
@NotNull
private
final
SQLRuleManager
ruleManager
;
private
ProjectionSupport
projectionSupport
;
private
ProjectionAnnotationModel
annotationModel
;
...
...
@@ -94,6 +96,7 @@ public abstract class SQLEditorBase extends BaseTextEditor {
{
super
();
syntaxManager
=
new
SQLSyntaxManager
();
ruleManager
=
new
SQLRuleManager
(
syntaxManager
);
themeListener
=
new
IPropertyChangeListener
()
{
@Override
public
void
propertyChange
(
PropertyChangeEvent
event
)
...
...
@@ -107,9 +110,7 @@ public abstract class SQLEditorBase extends BaseTextEditor {
PlatformUI
.
getWorkbench
().
getThemeManager
().
addPropertyChangeListener
(
themeListener
);
setDocumentProvider
(
new
SQLDocumentProvider
());
setSourceViewerConfiguration
(
new
SQLEditorSourceViewerConfiguration
(
this
,
syntaxManager
));
setSourceViewerConfiguration
(
new
SQLEditorSourceViewerConfiguration
(
this
));
setKeyBindingScopes
(
new
String
[]{
"org.eclipse.ui.textEditorScope"
,
"org.jkiss.dbeaver.ui.editors.sql"
});
//$NON-NLS-1$
}
...
...
@@ -137,6 +138,11 @@ public abstract class SQLEditorBase extends BaseTextEditor {
return
syntaxManager
;
}
@NotNull
public
SQLRuleManager
getRuleManager
()
{
return
ruleManager
;
}
public
ProjectionAnnotationModel
getAnnotationModel
()
{
return
annotationModel
;
...
...
@@ -315,7 +321,6 @@ public abstract class SQLEditorBase extends BaseTextEditor {
decorationSupport
.
dispose
();
decorationSupport
=
null
;
}
syntaxManager
.
dispose
();
if
(
themeListener
!=
null
)
{
PlatformUI
.
getWorkbench
().
getThemeManager
().
removePropertyChangeListener
(
themeListener
);
themeListener
=
null
;
...
...
@@ -383,13 +388,14 @@ public abstract class SQLEditorBase extends BaseTextEditor {
DBPDataSource
dataSource
=
executionContext
==
null
?
null
:
executionContext
.
getDataSource
();
// Refresh syntax
if
(
dataSource
instanceof
SQLDataSource
)
{
SQLDialect
dialect
=
((
SQLDataSource
)
dataSource
).
getSQLDialect
();
syntaxManager
.
setDataSource
((
SQLDataSource
)
dataSource
);
syntax
Manager
.
refreshRules
();
rule
Manager
.
refreshRules
();
Document
document
=
getDocument
();
if
(
document
!=
null
)
{
IDocumentPartitioner
partitioner
=
new
FastPartitioner
(
new
SQLPartitionScanner
(
syntaxManager
),
new
SQLPartitionScanner
(
dialect
),
SQLPartitionScanner
.
SQL_PARTITION_TYPES
);
partitioner
.
connect
(
document
);
document
.
setDocumentPartitioner
(
SQLPartitionScanner
.
SQL_PARTITIONING
,
partitioner
);
...
...
@@ -408,8 +414,8 @@ public abstract class SQLEditorBase extends BaseTextEditor {
}
}
Color
fgColor
=
getSyntaxManager
()
.
getColor
(
SQLConstants
.
CONFIG_COLOR_TEXT
);
Color
bgColor
=
getSyntaxManager
()
.
getColor
(!
syntaxManager
.
isUnassigned
()
&&
dataSource
==
null
?
Color
fgColor
=
ruleManager
.
getColor
(
SQLConstants
.
CONFIG_COLOR_TEXT
);
Color
bgColor
=
ruleManager
.
getColor
(!
syntaxManager
.
isUnassigned
()
&&
dataSource
==
null
?
SQLConstants
.
CONFIG_COLOR_DISABLED
:
SQLConstants
.
CONFIG_COLOR_BACKGROUND
);
if
(
fgColor
!=
null
)
{
...
...
@@ -529,14 +535,14 @@ public abstract class SQLEditorBase extends BaseTextEditor {
return
null
;
}
// Parse range
syntax
Manager
.
setRange
(
document
,
startPos
,
endPos
-
startPos
);
rule
Manager
.
setRange
(
document
,
startPos
,
endPos
-
startPos
);
int
statementStart
=
startPos
;
int
bracketDepth
=
0
;
boolean
hasValuableTokens
=
false
;
for
(;
;
)
{
IToken
token
=
syntax
Manager
.
nextToken
();
int
tokenOffset
=
syntax
Manager
.
getTokenOffset
();
final
int
tokenLength
=
syntax
Manager
.
getTokenLength
();
IToken
token
=
rule
Manager
.
nextToken
();
int
tokenOffset
=
rule
Manager
.
getTokenOffset
();
final
int
tokenLength
=
rule
Manager
.
getTokenLength
();
boolean
isDelimiter
=
token
instanceof
SQLDelimiterToken
;
if
(
tokenLength
==
1
)
{
try
{
...
...
@@ -624,12 +630,12 @@ public abstract class SQLEditorBase extends BaseTextEditor {
protected
List
<
SQLQueryParameter
>
parseParameters
(
IDocument
document
,
SQLQuery
query
)
{
boolean
execQuery
=
DBUtils
.
isExecQuery
(
getDataSource
(),
query
.
getQuery
());
List
<
SQLQueryParameter
>
parameters
=
null
;
syntax
Manager
.
setRange
(
document
,
query
.
getOffset
(),
query
.
getLength
());
rule
Manager
.
setRange
(
document
,
query
.
getOffset
(),
query
.
getLength
());
int
blockDepth
=
0
;
for
(;;)
{
IToken
token
=
syntax
Manager
.
nextToken
();
int
tokenOffset
=
syntax
Manager
.
getTokenOffset
();
final
int
tokenLength
=
syntax
Manager
.
getTokenLength
();
IToken
token
=
rule
Manager
.
nextToken
();
int
tokenOffset
=
rule
Manager
.
getTokenOffset
();
final
int
tokenLength
=
rule
Manager
.
getTokenLength
();
if
(
token
.
isEOF
()
||
tokenOffset
>
query
.
getOffset
()
+
query
.
getLength
())
{
break
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorSourceViewerConfiguration.java
浏览文件 @
c660e12c
...
...
@@ -65,7 +65,7 @@ public class SQLEditorSourceViewerConfiguration extends SourceViewerConfiguratio
* The editor with which this configuration is associated.
*/
private
SQLEditorBase
editor
;
private
SQL
SyntaxManager
syntax
Manager
;
private
SQL
RuleManager
rule
Manager
;
private
IContentAssistProcessor
completionProcessor
;
private
IHyperlinkDetector
hyperlinkDetector
;
...
...
@@ -87,13 +87,12 @@ public class SQLEditorSourceViewerConfiguration extends SourceViewerConfiguratio
* @param editor the SQLEditor to configure
*/
public
SQLEditorSourceViewerConfiguration
(
SQLEditorBase
editor
,
SQLSyntaxManager
syntaxManager
)
SQLEditorBase
editor
)
{
this
.
editor
=
editor
;
this
.
syntaxManager
=
syntaxManager
;
this
.
ruleManager
=
editor
.
getRuleManager
()
;
this
.
completionProcessor
=
new
SQLCompletionProcessor
(
editor
);
this
.
hyperlinkDetector
=
new
SQLHyperlinkDetector
(
editor
,
syntaxManager
);
this
.
hyperlinkDetector
=
new
SQLHyperlinkDetector
(
editor
,
editor
.
getSyntaxManager
()
);
}
@Override
...
...
@@ -240,7 +239,7 @@ public class SQLEditorSourceViewerConfiguration extends SourceViewerConfiguratio
ContentFormatter
formatter
=
new
ContentFormatter
();
formatter
.
setDocumentPartitioning
(
SQLPartitionScanner
.
SQL_PARTITIONING
);
IFormattingStrategy
formattingStrategy
=
new
SQLFormattingStrategy
(
syntaxManager
);
IFormattingStrategy
formattingStrategy
=
new
SQLFormattingStrategy
(
editor
.
getSyntaxManager
()
);
for
(
String
ct
:
SQLPartitionScanner
.
SQL_PARTITION_TYPES
)
{
formatter
.
setFormattingStrategy
(
formattingStrategy
,
ct
);
}
...
...
@@ -279,7 +278,7 @@ public class SQLEditorSourceViewerConfiguration extends SourceViewerConfiguratio
reconciler
.
setDocumentPartitioning
(
docPartitioning
);
// Add a "damager-repairer" for changes in default text (SQL code).
DefaultDamagerRepairer
dr
=
new
DefaultDamagerRepairer
(
syntax
Manager
);
DefaultDamagerRepairer
dr
=
new
DefaultDamagerRepairer
(
rule
Manager
);
reconciler
.
setDamager
(
dr
,
IDocument
.
DEFAULT_CONTENT_TYPE
);
reconciler
.
setRepairer
(
dr
,
IDocument
.
DEFAULT_CONTENT_TYPE
);
...
...
@@ -288,27 +287,27 @@ public class SQLEditorSourceViewerConfiguration extends SourceViewerConfiguratio
// We just need a scanner that does nothing but returns a token with
// the corresponding text attributes
dr
=
new
DefaultDamagerRepairer
(
new
SingleTokenScanner
(
new
TextAttribute
(
syntax
Manager
.
getColor
(
SQLConstants
.
CONFIG_COLOR_COMMENT
))));
new
TextAttribute
(
rule
Manager
.
getColor
(
SQLConstants
.
CONFIG_COLOR_COMMENT
))));
reconciler
.
setDamager
(
dr
,
SQLPartitionScanner
.
SQL_MULTILINE_COMMENT
);
reconciler
.
setRepairer
(
dr
,
SQLPartitionScanner
.
SQL_MULTILINE_COMMENT
);
// Add a "damager-repairer" for changes within one-line SQL comments.
dr
=
new
DefaultDamagerRepairer
(
new
SingleTokenScanner
(
new
TextAttribute
(
syntax
Manager
.
getColor
(
SQLConstants
.
CONFIG_COLOR_COMMENT
))));
new
TextAttribute
(
rule
Manager
.
getColor
(
SQLConstants
.
CONFIG_COLOR_COMMENT
))));
reconciler
.
setDamager
(
dr
,
SQLPartitionScanner
.
SQL_COMMENT
);
reconciler
.
setRepairer
(
dr
,
SQLPartitionScanner
.
SQL_COMMENT
);
// Add a "damager-repairer" for changes within quoted literals.
dr
=
new
DefaultDamagerRepairer
(
new
SingleTokenScanner
(
new
TextAttribute
(
syntax
Manager
.
getColor
(
SQLConstants
.
CONFIG_COLOR_STRING
))));
new
TextAttribute
(
rule
Manager
.
getColor
(
SQLConstants
.
CONFIG_COLOR_STRING
))));
reconciler
.
setDamager
(
dr
,
SQLPartitionScanner
.
SQL_STRING
);
reconciler
.
setRepairer
(
dr
,
SQLPartitionScanner
.
SQL_STRING
);
// // Add a "damager-repairer" for changes within delimited identifiers.
// dr = new DefaultDamagerRepairer(
// new SingleTokenScanner(
// new TextAttribute(
syntax
Manager.getColor(SQLSyntaxManager.CONFIG_COLOR_DELIMITER))));
// new TextAttribute(
rule
Manager.getColor(SQLSyntaxManager.CONFIG_COLOR_DELIMITER))));
// reconciler.setDamager(dr, SQLPartitionScanner.SQL_DOUBLE_QUOTES_IDENTIFIER);
// reconciler.setRepairer(dr, SQLPartitionScanner.SQL_DOUBLE_QUOTES_IDENTIFIER);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/CopyUnformattedTextAction.java
浏览文件 @
c660e12c
...
...
@@ -25,9 +25,10 @@ import org.eclipse.jface.text.ITextSelection;
import
org.eclipse.jface.text.rules.IToken
;
import
org.eclipse.swt.dnd.TextTransfer
;
import
org.eclipse.swt.widgets.Display
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQL
Syntax
Manager
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQL
Rule
Manager
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.SQLCommentToken
;
import
org.jkiss.utils.Pair
;
...
...
@@ -65,19 +66,20 @@ public class CopyUnformattedTextAction extends Action {
}
StringBuilder
result
=
new
StringBuilder
();
SQLSyntaxManager
syntaxManager
=
sqlEditor
.
getSyntaxManager
();
syntaxManager
.
setRange
(
document
,
startPos
,
endPos
-
startPos
);
String
[]
singleLineComments
=
syntaxManager
.
getDialect
().
getSingleLineComments
();
Pair
<
String
,
String
>
multiLineComments
=
syntaxManager
.
getDialect
().
getMultiLineComments
();
SQLRuleManager
ruleManager
=
sqlEditor
.
getRuleManager
();
SQLDialect
dialect
=
sqlEditor
.
getSyntaxManager
().
getDialect
();
ruleManager
.
setRange
(
document
,
startPos
,
endPos
-
startPos
);
String
[]
singleLineComments
=
dialect
.
getSingleLineComments
();
Pair
<
String
,
String
>
multiLineComments
=
dialect
.
getMultiLineComments
();
boolean
lastWhitespace
=
false
;
try
{
for
(;;)
{
IToken
token
=
syntax
Manager
.
nextToken
();
IToken
token
=
rule
Manager
.
nextToken
();
if
(
token
.
isEOF
())
{
break
;
}
int
tokenOffset
=
syntax
Manager
.
getTokenOffset
();
final
int
tokenLength
=
syntax
Manager
.
getTokenLength
();
int
tokenOffset
=
rule
Manager
.
getTokenOffset
();
final
int
tokenLength
=
rule
Manager
.
getTokenLength
();
if
(
token
.
isWhitespace
())
{
if
(!
lastWhitespace
)
{
result
.
append
(
' '
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProposal.java
浏览文件 @
c660e12c
...
...
@@ -29,6 +29,7 @@ import org.eclipse.swt.graphics.Image;
import
org.eclipse.swt.graphics.Point
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.DBPNamedObject
;
import
org.jkiss.dbeaver.model.sql.SQLSyntaxManager
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.DBSObjectReference
;
import
org.jkiss.utils.CommonUtils
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLFormattingStrategy.java
浏览文件 @
c660e12c
...
...
@@ -19,8 +19,9 @@ package org.jkiss.dbeaver.ui.editors.sql.syntax;
import
org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy
;
import
org.jkiss.dbeaver.model.DBPKeywordType
;
import
org.jkiss.dbeaver.ui.editors.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.ui.editors.sql.format.tokenized.SQLTokenizedFormatter
;
import
org.jkiss.dbeaver.model.sql.SQLSyntaxManager
;
import
org.jkiss.dbeaver.model.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.model.sql.format.tokenized.SQLTokenizedFormatter
;
import
java.util.StringTokenizer
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLHyperlinkDetector.java
浏览文件 @
c660e12c
...
...
@@ -32,6 +32,7 @@ import org.jkiss.dbeaver.model.DBIcon;
import
org.jkiss.dbeaver.model.DBPKeywordType
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.sql.SQLSyntaxManager
;
import
org.jkiss.dbeaver.model.struct.*
;
import
org.jkiss.dbeaver.runtime.jobs.DataSourceJob
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLPartitionScanner.java
浏览文件 @
c660e12c
...
...
@@ -23,6 +23,7 @@ import org.eclipse.jface.text.ITypedRegion;
import
org.eclipse.jface.text.TextUtilities
;
import
org.eclipse.jface.text.rules.*
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.utils.Pair
;
import
java.util.ArrayList
;
...
...
@@ -130,7 +131,7 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
setPredicateRules
(
result
);
}
private
void
initRules
(
SQL
SyntaxManager
sqlSyntax
)
private
void
initRules
(
SQL
Dialect
dialect
)
{
/*
//Add rule for identifier which is enclosed in double quotes.
...
...
@@ -149,7 +150,7 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
rules
.
add
(
new
MultiLineRule
(
SQLConstants
.
STR_QUOTE_SINGLE
,
SQLConstants
.
STR_QUOTE_SINGLE
,
sqlStringToken
,
'\\'
));
for
(
String
lineComment
:
sqlSyntax
.
getDialect
()
.
getSingleLineComments
())
{
for
(
String
lineComment
:
dialect
.
getSingleLineComments
())
{
rules
.
add
(
new
EndOfLineRule
(
lineComment
,
commentToken
));
}
...
...
@@ -158,24 +159,24 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
rules
.
add
(
wordRule
);
// Add rules for multi-line comments
Pair
<
String
,
String
>
multiLineComments
=
sqlSyntax
.
getDialect
()
.
getMultiLineComments
();
Pair
<
String
,
String
>
multiLineComments
=
dialect
.
getMultiLineComments
();
if
(
multiLineComments
!=
null
)
{
rules
.
add
(
new
MultiLineRule
(
multiLineComments
.
getFirst
(),
multiLineComments
.
getSecond
(),
multilineCommentToken
,
(
char
)
0
,
true
));
}
}
public
SQLPartitionScanner
(
SQL
SyntaxManager
sqlSyntax
)
public
SQLPartitionScanner
(
SQL
Dialect
dialect
)
{
initRules
(
sqlSyntax
);
initRules
(
dialect
);
//database specific rules
setCommentsScanner
(
sqlSyntax
);
setCommentsScanner
(
dialect
);
setupRules
();
}
private
void
setCommentsScanner
(
SQL
SyntaxManager
sqlSyntax
)
private
void
setCommentsScanner
(
SQL
Dialect
dialect
)
{
String
[]
singleLineComments
=
sqlSyntax
.
getDialect
()
.
getSingleLineComments
();
String
[]
singleLineComments
=
dialect
.
getSingleLineComments
();
for
(
String
singleLineComment
:
singleLineComments
)
{
// Add rule for single line comments.
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLReconcilingStrategy.java
浏览文件 @
c660e12c
...
...
@@ -104,8 +104,8 @@ public class SQLReconcilingStrategy implements IReconcilingStrategy, IReconcilin
if
(
annotationModel
==
null
)
{
return
;
}
Set
<
SQLScriptPosition
>
removedPositions
=
editor
.
get
Syntax
Manager
().
getRemovedPositions
(
true
);
Set
<
SQLScriptPosition
>
addedPositions
=
editor
.
get
Syntax
Manager
().
getAddedPositions
(
true
);
Set
<
SQLScriptPosition
>
removedPositions
=
editor
.
get
Rule
Manager
().
getRemovedPositions
(
true
);
Set
<
SQLScriptPosition
>
addedPositions
=
editor
.
get
Rule
Manager
().
getAddedPositions
(
true
);
Annotation
[]
removedAnnotations
=
null
;
if
(!
removedPositions
.
isEmpty
())
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQL
Syntax
Manager.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQL
Rule
Manager.java
浏览文件 @
c660e12c
...
...
@@ -27,12 +27,9 @@ import org.eclipse.ui.PlatformUI;
import
org.eclipse.ui.themes.ITheme
;
import
org.eclipse.ui.themes.IThemeManager
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect
;
import
org.jkiss.dbeaver.model.sql.SQLDataSource
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.dbeaver.model.sql.SQLSyntaxManager
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.*
;
import
org.jkiss.dbeaver.ui.editors.text.TextWhiteSpaceDetector
;
import
org.jkiss.utils.Pair
;
...
...
@@ -45,73 +42,27 @@ import java.util.*;
* Contains information about some concrete datasource underlying database syntax.
* Support runtime change of datasource (reloads syntax information)
*/
public
class
SQL
Syntax
Manager
extends
RuleBasedScanner
{
public
class
SQL
Rule
Manager
extends
RuleBasedScanner
{
@NotNull
private
final
IThemeManager
themeManager
;
@Nullable
private
SQLDataSource
dataSource
;
@NotNull
private
SQLDialect
sqlDialect
;
@Nullable
private
String
quoteSymbol
;
private
char
structSeparator
;
@NotNull
private
String
catalogSeparator
;
@NotNull
private
S
et
<
String
>
statementDelimiters
=
new
LinkedHashSet
<
String
>();
//SQLConstants.DEFAULT_STATEMENT_DELIMITER
;
private
S
QLSyntaxManager
syntaxManager
;
@NotNull
private
TreeMap
<
Integer
,
SQLScriptPosition
>
positions
=
new
TreeMap
<
Integer
,
SQLScriptPosition
>();
private
Set
<
SQLScriptPosition
>
addedPositions
=
new
HashSet
<
SQLScriptPosition
>();
private
Set
<
SQLScriptPosition
>
removedPositions
=
new
HashSet
<
SQLScriptPosition
>();
private
char
escapeChar
;
private
boolean
unassigned
;
public
SQL
SyntaxManager
(
)
public
SQL
RuleManager
(
SQLSyntaxManager
syntaxManager
)
{
themeManager
=
PlatformUI
.
getWorkbench
().
getThemeManager
();
this
.
syntaxManager
=
syntaxManager
;
this
.
themeManager
=
PlatformUI
.
getWorkbench
().
getThemeManager
();
}
public
void
dispose
()
{
}
/**
* Returns true if this syntax manager wasn't assigned to a some particular data source container/ SQL dialect
*/
public
boolean
isUnassigned
()
{
return
unassigned
;
}
@NotNull
public
SQLDialect
getDialect
()
{
return
sqlDialect
;
}
public
char
getStructSeparator
()
{
return
structSeparator
;
}
@NotNull
public
String
getCatalogSeparator
()
{
return
catalogSeparator
;
}
@NotNull
public
Set
<
String
>
getStatementDelimiters
()
{
return
statementDelimiters
;
}
@Nullable
public
String
getQuoteSymbol
()
{
return
quoteSymbol
;
}
@NotNull
public
Collection
<?
extends
Position
>
getPositions
(
int
offset
,
int
length
)
{
...
...
@@ -138,37 +89,6 @@ public class SQLSyntaxManager extends RuleBasedScanner {
return
posList
;
}
public
void
setDataSource
(
@Nullable
SQLDataSource
dataSource
)
{
this
.
unassigned
=
dataSource
==
null
;
this
.
dataSource
=
dataSource
;
this
.
statementDelimiters
.
clear
();
if
(
this
.
dataSource
==
null
)
{
sqlDialect
=
new
BasicSQLDialect
();
quoteSymbol
=
null
;
structSeparator
=
SQLConstants
.
STRUCT_SEPARATOR
;
catalogSeparator
=
String
.
valueOf
(
SQLConstants
.
STRUCT_SEPARATOR
);
escapeChar
=
'\\'
;
statementDelimiters
.
add
(
SQLConstants
.
DEFAULT_STATEMENT_DELIMITER
);
}
else
{
sqlDialect
=
this
.
dataSource
.
getSQLDialect
();
quoteSymbol
=
sqlDialect
.
getIdentifierQuoteString
();
structSeparator
=
sqlDialect
.
getStructSeparator
();
catalogSeparator
=
sqlDialect
.
getCatalogSeparator
();
sqlDialect
.
getSearchStringEscape
();
escapeChar
=
'\\'
;
if
(!
this
.
dataSource
.
getContainer
().
getPreferenceStore
().
getBoolean
(
DBeaverPreferences
.
SCRIPT_IGNORE_NATIVE_DELIMITER
))
{
statementDelimiters
.
add
(
sqlDialect
.
getScriptDelimiter
().
toLowerCase
());
}
String
extraDelimiters
=
this
.
dataSource
.
getContainer
().
getPreferenceStore
().
getString
(
DBeaverPreferences
.
SCRIPT_STATEMENT_DELIMITER
);
StringTokenizer
st
=
new
StringTokenizer
(
extraDelimiters
,
" \t,"
);
while
(
st
.
hasMoreTokens
())
{
statementDelimiters
.
add
(
st
.
nextToken
());
}
}
}
public
void
refreshRules
()
{
/*final Color backgroundColor = null;unassigned || dataSource != null ?
...
...
@@ -200,8 +120,9 @@ public class SQLSyntaxManager extends RuleBasedScanner {
setDefaultReturnToken
(
otherToken
);
List
<
IRule
>
rules
=
new
ArrayList
<
IRule
>();
SQLDialect
dialect
=
syntaxManager
.
getDialect
();
// Add rule for single-line comments.
for
(
String
lineComment
:
sqlD
ialect
.
getSingleLineComments
())
{
for
(
String
lineComment
:
d
ialect
.
getSingleLineComments
())
{
if
(
lineComment
.
startsWith
(
"^"
))
{
rules
.
add
(
new
LineCommentRule
(
lineComment
,
commentToken
));
//$NON-NLS-1$
}
else
{
...
...
@@ -210,6 +131,8 @@ public class SQLSyntaxManager extends RuleBasedScanner {
}
// Add rules for delimited identifiers and string literals.
char
escapeChar
=
syntaxManager
.
getEscapeChar
();
String
quoteSymbol
=
syntaxManager
.
getQuoteSymbol
();
if
(
quoteSymbol
!=
null
)
{
rules
.
add
(
new
SingleLineRule
(
quoteSymbol
,
quoteSymbol
,
quotedToken
,
escapeChar
));
}
...
...
@@ -220,7 +143,7 @@ public class SQLSyntaxManager extends RuleBasedScanner {
rules
.
add
(
new
SingleLineRule
(
SQLConstants
.
STR_QUOTE_DOUBLE
,
SQLConstants
.
STR_QUOTE_DOUBLE
,
quotedToken
,
escapeChar
));
}
Pair
<
String
,
String
>
multiLineComments
=
sqlD
ialect
.
getMultiLineComments
();
Pair
<
String
,
String
>
multiLineComments
=
d
ialect
.
getMultiLineComments
();
if
(
multiLineComments
!=
null
)
{
// Add rules for multi-line comments
rules
.
add
(
new
MultiLineRule
(
multiLineComments
.
getFirst
(),
multiLineComments
.
getSecond
(),
commentToken
,
(
char
)
0
,
true
));
...
...
@@ -232,7 +155,7 @@ public class SQLSyntaxManager extends RuleBasedScanner {
// Add numeric rule
rules
.
add
(
new
NumberRule
(
numberToken
));
for
(
final
String
delimiter
:
s
tatementDelimiters
)
{
for
(
final
String
delimiter
:
s
yntaxManager
.
getStatementDelimiters
()
)
{
WordRule
delimRule
;
if
(
Character
.
isLetterOrDigit
(
delimiter
.
charAt
(
0
)))
{
delimRule
=
new
WordRule
(
new
SQLWordDetector
(),
Token
.
UNDEFINED
,
true
);
...
...
@@ -257,13 +180,13 @@ public class SQLSyntaxManager extends RuleBasedScanner {
// Add word rule for keywords, types, and constants.
WordRule
wordRule
=
new
WordRule
(
new
SQLWordDetector
(),
otherToken
,
true
);
for
(
String
reservedWord
:
sqlD
ialect
.
getReservedWords
())
{
for
(
String
reservedWord
:
d
ialect
.
getReservedWords
())
{
wordRule
.
addWord
(
reservedWord
,
keywordToken
);
}
for
(
String
function
:
sqlD
ialect
.
getFunctions
())
{
for
(
String
function
:
d
ialect
.
getFunctions
())
{
wordRule
.
addWord
(
function
,
typeToken
);
}
for
(
String
type
:
sqlD
ialect
.
getTypes
())
{
for
(
String
type
:
d
ialect
.
getTypes
())
{
wordRule
.
addWord
(
type
,
typeToken
);
}
wordRule
.
addWord
(
SQLConstants
.
BLOCK_BEGIN
,
blockBeginToken
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLWordPartDetector.java
浏览文件 @
c660e12c
...
...
@@ -21,6 +21,7 @@ package org.jkiss.dbeaver.ui.editors.sql.syntax;
import
org.eclipse.jface.text.BadLocationException
;
import
org.eclipse.jface.text.IDocument
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.dbeaver.model.sql.SQLSyntaxManager
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/templates/SQLTemplatesPage.java
浏览文件 @
c660e12c
...
...
@@ -163,9 +163,7 @@ public class SQLTemplatesPage extends AbstractTemplatesPage {
{
IDocument
document
=
new
Document
();
SQLEditorSourceViewer
viewer
=
new
SQLEditorSourceViewer
(
parent
,
null
,
null
,
false
,
SWT
.
V_SCROLL
|
SWT
.
H_SCROLL
);
SQLEditorSourceViewerConfiguration
configuration
=
new
SQLEditorSourceViewerConfiguration
(
sqlEditor
,
sqlEditor
.
getSyntaxManager
());
SQLEditorSourceViewerConfiguration
configuration
=
new
SQLEditorSourceViewerConfiguration
(
sqlEditor
);
viewer
.
configure
(
configuration
);
viewer
.
setEditable
(
false
);
viewer
.
setDocument
(
document
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录