提交 c6f28272 编写于 作者: S Serge Rider

SQL syntax rules code cleanup

上级 35f71abc
......@@ -260,7 +260,6 @@ public class SQLEditorSourceViewerConfiguration extends TextSourceViewerConfigur
@Override
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer)
{
// Create a presentation reconciler to handle handle document changes.
PresentationReconciler reconciler = new PresentationReconciler();
String docPartitioning = getConfiguredDocumentPartitioning(sourceViewer);
......@@ -275,34 +274,27 @@ public class SQLEditorSourceViewerConfiguration extends TextSourceViewerConfigur
// rule for multiline comments
// We just need a scanner that does nothing but returns a token with
// the corresponding text attributes
dr = new DefaultDamagerRepairer(new SingleTokenScanner(
new TextAttribute(ruleManager.getColor(SQLConstants.CONFIG_COLOR_COMMENT))));
reconciler.setDamager(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_MULTILINE_COMMENT);
reconciler.setRepairer(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_MULTILINE_COMMENT);
addContentTypeDamageRepairer(reconciler, SQLPartitionScanner.CONTENT_TYPE_SQL_MULTILINE_COMMENT, SQLConstants.CONFIG_COLOR_COMMENT);
// Add a "damager-repairer" for changes within one-line SQL comments.
dr = new DefaultDamagerRepairer(new SingleTokenScanner(
new TextAttribute(ruleManager.getColor(SQLConstants.CONFIG_COLOR_COMMENT))));
reconciler.setDamager(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_COMMENT);
reconciler.setRepairer(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_COMMENT);
addContentTypeDamageRepairer(reconciler, SQLPartitionScanner.CONTENT_TYPE_SQL_COMMENT, SQLConstants.CONFIG_COLOR_COMMENT);
// Add a "damager-repairer" for changes within quoted literals.
dr = new DefaultDamagerRepairer(
new SingleTokenScanner(
new TextAttribute(ruleManager.getColor(SQLConstants.CONFIG_COLOR_STRING))));
reconciler.setDamager(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_STRING);
reconciler.setRepairer(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_STRING);
addContentTypeDamageRepairer(reconciler, SQLPartitionScanner.CONTENT_TYPE_SQL_STRING, SQLConstants.CONFIG_COLOR_STRING);
// Add a "damager-repairer" for changes within quoted literals.
dr = new DefaultDamagerRepairer(
new SingleTokenScanner(
new TextAttribute(ruleManager.getColor(SQLConstants.CONFIG_COLOR_DATATYPE))));
reconciler.setDamager(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_QUOTED);
reconciler.setRepairer(dr, SQLPartitionScanner.CONTENT_TYPE_SQL_QUOTED);
addContentTypeDamageRepairer(reconciler, SQLPartitionScanner.CONTENT_TYPE_SQL_QUOTED, SQLConstants.CONFIG_COLOR_DATATYPE);
return reconciler;
}
private void addContentTypeDamageRepairer(PresentationReconciler reconciler, String contentType, String colorId) {
DefaultDamagerRepairer dr = new DefaultDamagerRepairer(
new SingleTokenScanner(
new TextAttribute(ruleManager.getColor(colorId))));
reconciler.setDamager(dr, contentType);
reconciler.setRepairer(dr, contentType);
}
/**
* Returns the SQLEditor associated with this object.
*
......
......@@ -181,9 +181,9 @@ public class SQLRuleManager extends RuleBasedScanner {
rules.add(new MultiLineRule(SQLConstants.STR_QUOTE_DOUBLE, SQLConstants.STR_QUOTE_DOUBLE, quotedToken, (char)0));
}
// Add rules for multi-line comments
Pair<String, String> multiLineComments = dialect.getMultiLineComments();
if (multiLineComments != null) {
// Add rules for multi-line comments
rules.add(new MultiLineRule(multiLineComments.getFirst(), multiLineComments.getSecond(), commentToken, (char) 0, true));
}
......
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.syntax.tokens;
import org.eclipse.jface.text.rules.Token;
/**
* SQLControlToken
*
* Control tokens are used for local SQL script evaluation.
*/
public abstract class SQLControlToken extends Token {
public SQLControlToken(Object data)
{
super(data);
}
}
......@@ -17,14 +17,12 @@
package org.jkiss.dbeaver.ui.editors.sql.syntax.tokens;
import org.eclipse.jface.text.rules.Token;
/**
* SQLFileIncludeToken
*
* @author Serge Rider
*/
public class SQLFileIncludeToken extends Token {
public class SQLFileIncludeToken extends SQLControlToken {
public SQLFileIncludeToken(Object data)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册