提交 36fcbd70 编写于 作者: S serge-rider

sQL editor: trailing query delimiter trim (optional)

上级 2b37fc9c
......@@ -825,6 +825,7 @@ public class CoreMessages extends NLS {
public static String pref_page_sql_editor_checkbox_fetch_resultsets;
public static String pref_page_sql_editor_text_statement_delimiter;
public static String pref_page_sql_editor_checkbox_ignore_native_delimiter;
public static String pref_page_sql_editor_checkbox_remove_trailing_delimiter;
public static String pref_page_sql_editor_checkbox_blank_line_delimiter;
public static String pref_page_sql_editor_checkbox_enable_sql_parameters;
public static String pref_page_sql_editor_title_pattern;
......
......@@ -832,6 +832,7 @@ pref_page_sql_editor_checkbox_enable_sql_anonymous_parameters = Anonymous SQL pa
pref_page_sql_editor_checkbox_enable_sql_parameters = Enable SQL parameters
pref_page_sql_editor_checkbox_fetch_resultsets = Fetch resultsets
pref_page_sql_editor_checkbox_ignore_native_delimiter = Ignore native delimiter
pref_page_sql_editor_checkbox_remove_trailing_delimiter = Remove trailing query delimiter
pref_page_sql_editor_checkbox_reset_cursor = Reset cursor after execute
pref_page_sql_editor_checkbox_max_editor_on_script_exec = Maximize editor on script execute
pref_page_sql_editor_combo_item_each_line_autocommit = After each line (autocommit)
......
......@@ -516,7 +516,9 @@ public abstract class SQLEditorBase extends BaseTextEditor implements IErrorVisu
ITextSelection selection = (ITextSelection) getSelectionProvider().getSelection();
String selText = selection.getText();
selText = SQLUtils.trimQueryStatement(getSyntaxManager(), selText, !syntaxManager.getDialect().isDelimiterAfterQuery());
if (getActivePreferenceStore().getBoolean(ModelPreferences.QUERY_REMOVE_TRAILING_DELIMITER)) {
selText = SQLUtils.trimQueryStatement(getSyntaxManager(), selText, !syntaxManager.getDialect().isDelimiterAfterQuery());
}
if (!CommonUtils.isEmpty(selText)) {
SQLScriptElement parsedElement = parseQuery(getDocument(), selection.getOffset(), selection.getOffset() + selection.getLength(), selection.getOffset(), false, false);
if (parsedElement instanceof SQLControlCommand) {
......
......@@ -54,6 +54,7 @@ public class PrefPageSQLExecute extends TargetPrefPage
private Text statementDelimiterText;
private Button ignoreNativeDelimiter;
private Button blankLineDelimiter;
private Button removeTrailingDelimiter;
private Button enableSQLParameters;
private Button enableSQLAnonymousParameters;
......@@ -82,6 +83,8 @@ public class PrefPageSQLExecute extends TargetPrefPage
store.contains(ModelPreferences.SCRIPT_STATEMENT_DELIMITER) ||
store.contains(ModelPreferences.SCRIPT_IGNORE_NATIVE_DELIMITER) ||
store.contains(ModelPreferences.SCRIPT_STATEMENT_DELIMITER_BLANK) ||
store.contains(ModelPreferences.QUERY_REMOVE_TRAILING_DELIMITER) ||
store.contains(ModelPreferences.SQL_PARAMETERS_ENABLED) ||
store.contains(ModelPreferences.SQL_PARAMETERS_IN_DDL_ENABLED) ||
store.contains(ModelPreferences.SQL_ANONYMOUS_PARAMETERS_ENABLED) ||
......@@ -107,7 +110,7 @@ public class PrefPageSQLExecute extends TargetPrefPage
// General settings
{
Composite commonGroup = UIUtils.createControlGroup(composite, CoreMessages.pref_page_sql_editor_group_common, 2, GridData.FILL_HORIZONTAL, 0);
Composite commonGroup = UIUtils.createControlGroup(composite, CoreMessages.pref_page_sql_editor_group_common, 2, GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING, 0);
{
invalidateBeforeExecuteCheck = UIUtils.createCheckbox(commonGroup, CoreMessages.pref_page_sql_editor_label_invalidate_before_execute, null, false, 2);
soundOnQueryEnd = UIUtils.createCheckbox(commonGroup, CoreMessages.pref_page_sql_editor_label_sound_on_query_end, null, false, 2);
......@@ -180,6 +183,7 @@ public class PrefPageSQLExecute extends TargetPrefPage
//statementDelimiterText.setTextLimit(1);
ignoreNativeDelimiter = UIUtils.createCheckbox(delimGroup, CoreMessages.pref_page_sql_editor_checkbox_ignore_native_delimiter, null, false, 2);
blankLineDelimiter = UIUtils.createCheckbox(delimGroup, CoreMessages.pref_page_sql_editor_checkbox_blank_line_delimiter, null, false, 2);
removeTrailingDelimiter = UIUtils.createCheckbox(delimGroup, CoreMessages.pref_page_sql_editor_checkbox_remove_trailing_delimiter, null, false, 2);
}
return composite;
......@@ -204,6 +208,7 @@ public class PrefPageSQLExecute extends TargetPrefPage
statementDelimiterText.setText(store.getString(ModelPreferences.SCRIPT_STATEMENT_DELIMITER));
ignoreNativeDelimiter.setSelection(store.getBoolean(ModelPreferences.SCRIPT_IGNORE_NATIVE_DELIMITER));
blankLineDelimiter.setSelection(store.getBoolean(ModelPreferences.SCRIPT_STATEMENT_DELIMITER_BLANK));
removeTrailingDelimiter.setSelection(store.getBoolean(ModelPreferences.QUERY_REMOVE_TRAILING_DELIMITER));
enableSQLParameters.setSelection(store.getBoolean(ModelPreferences.SQL_PARAMETERS_ENABLED));
enableSQLAnonymousParameters.setSelection(store.getBoolean(ModelPreferences.SQL_ANONYMOUS_PARAMETERS_ENABLED));
......@@ -234,6 +239,7 @@ public class PrefPageSQLExecute extends TargetPrefPage
store.setValue(ModelPreferences.SCRIPT_STATEMENT_DELIMITER, statementDelimiterText.getText());
store.setValue(ModelPreferences.SCRIPT_IGNORE_NATIVE_DELIMITER, ignoreNativeDelimiter.getSelection());
store.setValue(ModelPreferences.SCRIPT_STATEMENT_DELIMITER_BLANK, blankLineDelimiter.getSelection());
store.setValue(ModelPreferences.QUERY_REMOVE_TRAILING_DELIMITER, removeTrailingDelimiter.getSelection());
store.setValue(ModelPreferences.SQL_PARAMETERS_ENABLED, enableSQLParameters.getSelection());
store.setValue(ModelPreferences.SQL_ANONYMOUS_PARAMETERS_ENABLED, enableSQLAnonymousParameters.getSelection());
......@@ -262,12 +268,13 @@ public class PrefPageSQLExecute extends TargetPrefPage
store.setToDefault(ModelPreferences.SCRIPT_STATEMENT_DELIMITER);
store.setToDefault(ModelPreferences.SCRIPT_IGNORE_NATIVE_DELIMITER);
store.setToDefault(ModelPreferences.SCRIPT_STATEMENT_DELIMITER_BLANK);
store.setToDefault(ModelPreferences.QUERY_REMOVE_TRAILING_DELIMITER);
store.setToDefault(ModelPreferences.SQL_PARAMETERS_ENABLED);
store.setToDefault(ModelPreferences.SQL_PARAMETERS_IN_DDL_ENABLED);
store.setToDefault(ModelPreferences.SQL_ANONYMOUS_PARAMETERS_ENABLED);
store.setToDefault(ModelPreferences.SQL_ANONYMOUS_PARAMETERS_MARK);
store.setToDefault(ModelPreferences.SCRIPT_STATEMENT_DELIMITER_BLANK);
store.setToDefault(ModelPreferences.SQL_NAMED_PARAMETERS_PREFIX);
store.setToDefault(SQLPreferenceConstants.BEEP_ON_QUERY_END);
......
......@@ -43,6 +43,7 @@ public final class ModelPreferences
public static final String SCRIPT_STATEMENT_DELIMITER = "script.sql.delimiter"; //$NON-NLS-1$
public static final String SCRIPT_IGNORE_NATIVE_DELIMITER = "script.sql.ignoreNativeDelimiter"; //$NON-NLS-1$
public static final String SCRIPT_STATEMENT_DELIMITER_BLANK = "script.sql.delimiter.blank"; //$NON-NLS-1$
public static final String QUERY_REMOVE_TRAILING_DELIMITER = "script.sql.query.remove.trailing.delimiter"; //$NON-NLS-1$
public static final String MEMORY_CONTENT_MAX_SIZE = "content.memory.maxsize"; //$NON-NLS-1$
public static final String CONTENT_HEX_ENCODING = "content.hex.encoding"; //$NON-NLS-1$
......@@ -113,6 +114,7 @@ public final class ModelPreferences
PrefUtils.setDefaultPreferenceValue(store, SCRIPT_STATEMENT_DELIMITER, SQLConstants.DEFAULT_STATEMENT_DELIMITER);
PrefUtils.setDefaultPreferenceValue(store, SCRIPT_IGNORE_NATIVE_DELIMITER, false);
PrefUtils.setDefaultPreferenceValue(store, SCRIPT_STATEMENT_DELIMITER_BLANK, true);
PrefUtils.setDefaultPreferenceValue(store, QUERY_REMOVE_TRAILING_DELIMITER, true);
PrefUtils.setDefaultPreferenceValue(store, MEMORY_CONTENT_MAX_SIZE, 10000);
PrefUtils.setDefaultPreferenceValue(store, META_SEPARATE_CONNECTION, true);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册