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

#7183 Double-dollar rule configuration. Custom rules model refactoring

上级 506e2ef1
......@@ -20,6 +20,8 @@ import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.rules.IRule;
import org.eclipse.swt.SWT;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.runtime.sql.SQLRuleProvider;
import org.jkiss.dbeaver.ui.UIUtils;
......@@ -34,7 +36,7 @@ import java.util.List;
class ExasolDialectRules implements SQLRuleProvider {
@Override
public void extendRules(@NotNull List<IRule> rules, @NotNull RulePosition position) {
public void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List<IRule> rules, @NotNull RulePosition position) {
if (position == SQLRuleProvider.RulePosition.CONTROL) {
final SQLControlToken defineToken = new SQLControlToken(
new TextAttribute(UIUtils.getGlobalColor(SQLConstants.CONFIG_COLOR_COMMAND), null, SWT.BOLD),
......
......@@ -20,6 +20,8 @@ import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.rules.IRule;
import org.eclipse.swt.SWT;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.runtime.sql.SQLRuleProvider;
import org.jkiss.dbeaver.ui.UIUtils;
......@@ -34,7 +36,7 @@ import java.util.List;
class MySQLDialectRules implements SQLRuleProvider {
@Override
public void extendRules(@NotNull List<IRule> rules, @NotNull RulePosition position) {
public void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List<IRule> rules, @NotNull RulePosition position) {
if (position == RulePosition.CONTROL) {
final SQLControlToken sourceToken = new SQLControlToken(
new TextAttribute(UIUtils.getGlobalColor(SQLConstants.CONFIG_COLOR_COMMAND), null, SWT.BOLD),
......
......@@ -20,6 +20,8 @@ import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.rules.*;
import org.eclipse.swt.SWT;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions;
import org.jkiss.dbeaver.runtime.sql.SQLRuleProvider;
......@@ -33,7 +35,7 @@ import java.util.List;
class OracleDialectRules implements SQLRuleProvider {
@Override
public void extendRules(@NotNull List<IRule> rules, @NotNull RulePosition position) {
public void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List<IRule> rules, @NotNull RulePosition position) {
if (position == RulePosition.INITIAL || position == RulePosition.PARTITION) {
rules.add(new QStringRule(position == RulePosition.PARTITION));
}
......
......@@ -277,4 +277,10 @@
</factory>
</extension>
<extension point="org.eclipse.ui.preferencePages">
<page category="org.jkiss.dbeaver.preferences.drivers" id="org.jkiss.dbeaver.preferences.postgresql.general" class="org.jkiss.dbeaver.ext.postgresql.ui.PrefPagePostgreSQL" name="PostgreSQL">
<keywordReference id="org.jkiss.dbeaver.core.keyword.dbeaver"/>
</page>
</extension>
</plugin>
......@@ -20,109 +20,109 @@ package org.jkiss.dbeaver.ext.postgresql;
import org.eclipse.osgi.util.NLS;
public class PostgreMessages extends NLS {
static final String BUNDLE_NAME = "org.jkiss.dbeaver.ext.postgresql.PostgresResources"; //$NON-NLS-1$
/*backup wizard*/
public static String wizard_backup_title;
public static String wizard_backup_msgbox_success_title;
public static String wizard_backup_msgbox_success_description;
public static String wizard_backup_page_object_title_schema_table;
public static String wizard_backup_page_object_title;
public static String wizard_backup_page_object_description;
public static String wizard_backup_page_object_group_object;
public static String wizard_backup_page_object_checkbox_show_view;
public static String wizard_backup_page_setting_title_setting;
public static String wizard_backup_page_setting_title;
public static String wizard_backup_page_setting_description;
public static String wizard_backup_page_setting_group_setting;
public static String wizard_backup_page_setting_label_format;
public static String wizard_backup_page_setting_label_compression;
public static String wizard_backup_page_setting_label_encoding;
public static String wizard_backup_page_setting_checkbox_use_insert;
public static String wizard_backup_page_setting_checkbox_no_privileges;
public static String wizard_backup_page_setting_checkbox_no_owner;
public static String wizard_backup_page_setting_group_output;
public static String wizard_backup_page_setting_label_output_folder;
public static String wizard_backup_page_setting_label_file_name_pattern;
public static String wizard_backup_page_setting_label_file_name_pattern_output;
public static String wizard_backup_page_setting_group_security;
public static String wizard_backup_page_setting_group_security_label_info;
public static String wizard_backup_page_setting_group_security_btn_authentication;
public static String wizard_backup_page_setting_group_security_btn_reset_default;
/* wizard restore*/
public static String wizard_restore_title;
public static String wizard_restore_page_setting_btn_clean_first;
public static String wizard_restore_page_setting_description;
public static String wizard_restore_page_setting_label_backup_file;
public static String wizard_restore_page_setting_label_choose_backup_file;
public static String wizard_restore_page_setting_label_format;
public static String wizard_restore_page_setting_label_input;
public static String wizard_restore_page_setting_label_setting;
public static String wizard_restore_page_setting_title;
public static String wizard_restore_page_setting_title_setting;
public static String tool_run_in_separate_transaction;
public static String tool_run_in_separate_transaction_tooltip;
/* tool script */
public static String wizard_script_title_import_db;
public static String wizard_script_title_execute_script;
public static String tool_script_title_execute;
public static String tool_script_title_import;
public static String tool_script_description_execute;
public static String tool_script_description_import;
public static String tool_script_label_input;
public static String tool_script_label_input_file;
/* tool analyze */
public static String tool_analyze_title_table;
public static String tool_analyze_title_database;
/* tool refresh mat view */
public static String tool_refresh_mview_title_table;
/* tool vacuum */
public static String tool_vacuum_analyze_check_tooltip;
public static String tool_vacuum_dps_check_tooltip;
public static String tool_vacuum_freeze_check_tooltip;
public static String tool_vacuum_full_check_tooltip;
public static String tool_vacuum_group_option;
public static String tool_vacuum_title_database;
public static String tool_vacuum_title_table;
/* tool truncate */
public static String tool_truncate_checkbox_cascade;
public static String tool_truncate_checkbox_cascade_tooltip;
public static String tool_truncate_checkbox_only;
public static String tool_truncate_checkbox_only_tooltip;
public static String tool_truncate_checkbox_restart;
public static String tool_truncate_checkbox_restart_tooltip;
public static String tool_truncate_group_option;
public static String tool_truncate_title_table;
/* tool refresh mat view */
public static String tool_refresh_mview_group_option;
public static String tool_refresh_mview_with_data;
public static String tool_refresh_mview_with_data_tooltip;
/* dialog create db */
public static String dialog_create_db_group_definition;
public static String dialog_create_db_group_general;
public static String dialog_create_db_label_db_name;
public static String dialog_create_db_label_encoding;
public static String dialog_create_db_label_owner;
public static String dialog_create_db_label_tablesapce;
public static String dialog_create_db_label_template_db;
public static String dialog_create_db_title;
public static String dialog_create_db_tablespace_default;
/* dialog create schema */
public static String dialog_create_schema_name;
public static String dialog_create_schema_owner;
public static String dialog_create_schema_title;
/* dialog create extension */
static final String BUNDLE_NAME = "org.jkiss.dbeaver.ext.postgresql.PostgresResources"; //$NON-NLS-1$
/*backup wizard*/
public static String wizard_backup_title;
public static String wizard_backup_msgbox_success_title;
public static String wizard_backup_msgbox_success_description;
public static String wizard_backup_page_object_title_schema_table;
public static String wizard_backup_page_object_title;
public static String wizard_backup_page_object_description;
public static String wizard_backup_page_object_group_object;
public static String wizard_backup_page_object_checkbox_show_view;
public static String wizard_backup_page_setting_title_setting;
public static String wizard_backup_page_setting_title;
public static String wizard_backup_page_setting_description;
public static String wizard_backup_page_setting_group_setting;
public static String wizard_backup_page_setting_label_format;
public static String wizard_backup_page_setting_label_compression;
public static String wizard_backup_page_setting_label_encoding;
public static String wizard_backup_page_setting_checkbox_use_insert;
public static String wizard_backup_page_setting_checkbox_no_privileges;
public static String wizard_backup_page_setting_checkbox_no_owner;
public static String wizard_backup_page_setting_group_output;
public static String wizard_backup_page_setting_label_output_folder;
public static String wizard_backup_page_setting_label_file_name_pattern;
public static String wizard_backup_page_setting_label_file_name_pattern_output;
public static String wizard_backup_page_setting_group_security;
public static String wizard_backup_page_setting_group_security_label_info;
public static String wizard_backup_page_setting_group_security_btn_authentication;
public static String wizard_backup_page_setting_group_security_btn_reset_default;
/* wizard restore*/
public static String wizard_restore_title;
public static String wizard_restore_page_setting_btn_clean_first;
public static String wizard_restore_page_setting_description;
public static String wizard_restore_page_setting_label_backup_file;
public static String wizard_restore_page_setting_label_choose_backup_file;
public static String wizard_restore_page_setting_label_format;
public static String wizard_restore_page_setting_label_input;
public static String wizard_restore_page_setting_label_setting;
public static String wizard_restore_page_setting_title;
public static String wizard_restore_page_setting_title_setting;
public static String tool_run_in_separate_transaction;
public static String tool_run_in_separate_transaction_tooltip;
/* tool script */
public static String wizard_script_title_import_db;
public static String wizard_script_title_execute_script;
public static String tool_script_title_execute;
public static String tool_script_title_import;
public static String tool_script_description_execute;
public static String tool_script_description_import;
public static String tool_script_label_input;
public static String tool_script_label_input_file;
/* tool analyze */
public static String tool_analyze_title_table;
public static String tool_analyze_title_database;
/* tool refresh mat view */
public static String tool_refresh_mview_title_table;
/* tool vacuum */
public static String tool_vacuum_analyze_check_tooltip;
public static String tool_vacuum_dps_check_tooltip;
public static String tool_vacuum_freeze_check_tooltip;
public static String tool_vacuum_full_check_tooltip;
public static String tool_vacuum_group_option;
public static String tool_vacuum_title_database;
public static String tool_vacuum_title_table;
/* tool truncate */
public static String tool_truncate_checkbox_cascade;
public static String tool_truncate_checkbox_cascade_tooltip;
public static String tool_truncate_checkbox_only;
public static String tool_truncate_checkbox_only_tooltip;
public static String tool_truncate_checkbox_restart;
public static String tool_truncate_checkbox_restart_tooltip;
public static String tool_truncate_group_option;
public static String tool_truncate_title_table;
/* tool refresh mat view */
public static String tool_refresh_mview_group_option;
public static String tool_refresh_mview_with_data;
public static String tool_refresh_mview_with_data_tooltip;
/* dialog create db */
public static String dialog_create_db_group_definition;
public static String dialog_create_db_group_general;
public static String dialog_create_db_label_db_name;
public static String dialog_create_db_label_encoding;
public static String dialog_create_db_label_owner;
public static String dialog_create_db_label_tablesapce;
public static String dialog_create_db_label_template_db;
public static String dialog_create_db_title;
public static String dialog_create_db_tablespace_default;
/* dialog create schema */
public static String dialog_create_schema_name;
public static String dialog_create_schema_owner;
public static String dialog_create_schema_title;
/* dialog create extension */
public static String dialog_create_extension_name;
public static String dialog_create_extension_schema;
public static String dialog_create_extension_title;
......@@ -130,55 +130,60 @@ public class PostgreMessages extends NLS {
public static String dialog_create_extension_column_version;
public static String dialog_create_extension_column_description;
public static String dialog_create_extension_database;
/* PostgresSSLConfigurator */
public static String dialog_connection_network_postgres_ssl_certificates;
public static String dialog_connection_network_postgres_ssl_certificates_root;
public static String dialog_connection_network_postgres_ssl_certificates_ca;
public static String dialog_connection_network_postgres_ssl_certificates_ssl;
public static String dialog_connection_network_postgres_ssl_certificates_ssl_key;
public static String dialog_connection_network_postgres_ssl_advanced;
public static String dialog_connection_network_postgres_ssl_advanced_ssl_mode;
public static String dialog_connection_network_postgres_ssl_advanced_ssl_factory;
/* PostgreConnectionPage */
public static String dialog_setting_connection_host;
public static String dialog_setting_connection_port;
public static String dialog_setting_connection_database;
public static String dialog_setting_connection_user;
public static String dialog_setting_connection_password;
public static String dialog_setting_connection_settings;
public static String dialog_setting_connection_localClient;
public static String dialog_setting_connection_nondefaultDatabase;
public static String dialog_setting_connection_nondefaultDatabase_tip;
public static String dialog_setting_connection_show_templates;
public static String dialog_setting_connection_show_templates_tip;
public static String dialog_setting_connection_switchDatabaseOnExpand;
public static String dialog_setting_connection_switchDatabaseOnExpand_tip;
/* PostgreCreateRoleDialog */
public static String dialog_create_role_title;
public static String dialog_create_role_group_general;
public static String dialog_create_role_label_role_name;
public static String dialog_create_role_label_user_password;
public static String dialog_create_role_label_user_role;
/* Permissions */
public static String edit_command_grant_privilege_action_grant_privilege;
public static String edit_command_grant_privilege_action_revoke_privilege;
/* PostgresSSLConfigurator */
public static String dialog_connection_network_postgres_ssl_certificates;
public static String dialog_connection_network_postgres_ssl_certificates_root;
public static String dialog_connection_network_postgres_ssl_certificates_ca;
public static String dialog_connection_network_postgres_ssl_certificates_ssl;
public static String dialog_connection_network_postgres_ssl_certificates_ssl_key;
public static String dialog_connection_network_postgres_ssl_advanced;
public static String dialog_connection_network_postgres_ssl_advanced_ssl_mode;
public static String dialog_connection_network_postgres_ssl_advanced_ssl_factory;
/* PostgreConnectionPage */
public static String dialog_setting_connection_host;
public static String dialog_setting_connection_port;
public static String dialog_setting_connection_database;
public static String dialog_setting_connection_user;
public static String dialog_setting_connection_password;
public static String dialog_setting_connection_settings;
public static String dialog_setting_connection_localClient;
public static String dialog_setting_connection_nondefaultDatabase;
public static String dialog_setting_connection_nondefaultDatabase_tip;
public static String dialog_setting_connection_show_templates;
public static String dialog_setting_connection_show_templates_tip;
public static String dialog_setting_group_sql;
public static String dialog_setting_sql_dd_plain_label;
public static String dialog_setting_sql_dd_plain_tip;
public static String dialog_setting_sql_dd_tag_label;
public static String dialog_setting_sql_dd_tag_tip;
public static String dialog_setting_sql_dd_string;
public static String dialog_setting_sql_dd_code_block;
/* PostgreCreateRoleDialog */
public static String dialog_create_role_title;
public static String dialog_create_role_group_general;
public static String dialog_create_role_label_role_name;
public static String dialog_create_role_label_user_password;
public static String dialog_create_role_label_user_role;
/* Permissions */
public static String edit_command_grant_privilege_action_grant_privilege;
public static String edit_command_grant_privilege_action_revoke_privilege;
public static String edit_constraint_page_add_constraint;
public static String dialog_create_push_button_grant_all;
public static String dialog_create_push_button_grant_all;
public static String dialog_create_push_button_revoke_all;
public static String dialog_object_description_text_no_objects;
public static String dialog_create_table_column_name_permission;
public static String dialog_create_table_column_name_with_garant;
public static String dialog_create_table_column_name_with_hierarchy;
public static String postgre_foreign_key_manager_checkbox_deferrable;
public static String postgre_foreign_key_manager_checkbox_deferred;
public static String postgre_foreign_key_manager_header_edit_foreign_key;
public static String postgre_foreign_key_manager_checkbox_deferred;
public static String postgre_foreign_key_manager_header_edit_foreign_key;
/* Tablespaces */
/* Tablespaces */
public static String dialog_create_tablespace_title;
public static String dialog_create_tablespace_database;
public static String dialog_create_tablespace_name;
......@@ -186,12 +191,12 @@ public class PostgreMessages extends NLS {
public static String dialog_create_tablespace_loc;
public static String dialog_create_tablespace_options;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, PostgreMessages.class);
}
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, PostgreMessages.class);
}
private PostgreMessages() {
}
private PostgreMessages() {
}
}
......@@ -131,8 +131,14 @@ dialog_setting_connection_nondefaultDatabase_tip = Show all databases in databas
dialog_setting_connection_show_templates = Show template databases
dialog_setting_connection_show_templates_tip = Show template databases in database list.\nEnabled only if non-default databases are visible
dialog_setting_connection_switchDatabaseOnExpand = Switch default database on access
dialog_setting_connection_switchDatabaseOnExpand_tip = Switch default database if you access any object inside non-default database (e.g. schema)
dialog_setting_group_sql = SQL
dialog_setting_sql_dd_plain_label = Show $$ quote as
dialog_setting_sql_dd_plain_tip = Show $$ quotes as string quote or as code block quote
dialog_setting_sql_dd_tag_label = Show $tagName$ quote as
dialog_setting_sql_dd_tag_tip = Show $tagName$ quotes as string quote or as code block quote
dialog_setting_sql_dd_string = String
dialog_setting_sql_dd_code_block = Code block
dialog_setting_connection_password = Password
dialog_setting_connection_port = Port
dialog_setting_connection_settings = Settings
......
......@@ -70,10 +70,6 @@ dialog_setting_connection_show_templates = Zeige Vorlagedatenbanken
dialog_setting_connection_show_templates_tip = Zeigt Vorlagendatenbanken in der Datenbankliste an.\r\nNur aktiviert, wenn nicht standardm\u00E4\u00DFige Datenbanken sichtbar sind.
dialog_setting_connection_switchDatabaseOnExpand = Standarddatenbank bei Zugriff umschalten
dialog_setting_connection_switchDatabaseOnExpand_tip = Standarddatenbank wechseln, wenn auf ein Objekt innerhalb der nicht standardm\u00E4\u00DFigen Datenbank zugegrifen wird (z.B. Schema)
dialog_setting_connection_user = Benutzer
edit_command_grant_privilege_action_grant_privilege = Bewilligung
......
......@@ -50,8 +50,6 @@ dialog_setting_connection_port = \u041F\u043E\u0440\u0442
dialog_setting_connection_settings = \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
dialog_setting_connection_show_templates = \u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u043D\u044B\u0435 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445
dialog_setting_connection_show_templates_tip = \u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u043D\u044B\u0435 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u0432 \u043D\u0430\u0432\u0438\u0433\u0430\u0442\u043E\u0440\u0435.\n\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0442\u043E\u043B\u044C\u043A\u043E \u0435\u0441\u043B\u0438 \u0432\u0438\u0434\u043D\u044B \u0432\u0441\u0435 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445.
dialog_setting_connection_switchDatabaseOnExpand = \u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0411\u0414 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0435
dialog_setting_connection_switchDatabaseOnExpand_tip = \u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u0443\u044E \u0411\u0414, \u0435\u0441\u043B\u0438 \u0438\u0434\u0451\u0442 \u0434\u043E\u0441\u0442\u0443\u043F \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 \u0432 \u0438\u043D\u043E\u0439 \u0411\u0414 (\u043D\u0430\u043F\u0440. \u043A \u0441\u0445\u0435\u043C\u0435)
dialog_setting_connection_user = \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C
dialog_create_push_button_grant_all=\u0412\u044B\u0434\u0430\u0442\u044C \u0432\u0441\u0435 \u043F\u0440\u0430\u0432\u0430
dialog_create_push_button_revoke_all=\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u043F\u0440\u0430\u0432\u0430
......
......@@ -20,11 +20,11 @@ import org.eclipse.jface.dialogs.IDialogPage;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.ext.postgresql.PostgreUtils;
......@@ -53,8 +53,6 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo
private Text usernameText;
private Text passwordText;
private ClientHomesSelector homesSelector;
private Button showNonDefault;
private Button showTemplates;
private boolean activated = false;
@Override
......@@ -143,24 +141,6 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo
homesSelector.getPanel().setLayoutData(gd);
}
{
Group secureGroup = new Group(addrGroup, SWT.NONE);
secureGroup.setText(PostgreMessages.dialog_setting_connection_settings);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 4;
secureGroup.setLayoutData(gd);
secureGroup.setLayout(new GridLayout(2, false));
showNonDefault = UIUtils.createCheckbox(secureGroup, PostgreMessages.dialog_setting_connection_nondefaultDatabase, PostgreMessages.dialog_setting_connection_nondefaultDatabase_tip, false, 2);
showNonDefault.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
showTemplates.setEnabled(showNonDefault.getSelection());
}
});
showTemplates = UIUtils.createCheckbox(secureGroup, PostgreMessages.dialog_setting_connection_show_templates, PostgreMessages.dialog_setting_connection_show_templates_tip, false, 2);
}
createDriverPanel(addrGroup);
setControl(addrGroup);
}
......@@ -237,10 +217,6 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo
}
homesSelector.populateHomes(driver, connectionInfo.getClientHomeId(), site.isNew());
showNonDefault.setSelection(CommonUtils.getBoolean(connectionInfo.getProviderProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB), false));
showTemplates.setSelection(CommonUtils.getBoolean(connectionInfo.getProviderProperty(PostgreConstants.PROP_SHOW_TEMPLATES_DB), false));
showTemplates.setEnabled(showNonDefault.getSelection());
activated = true;
}
......@@ -267,8 +243,6 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo
connectionInfo.setClientHomeId(homesSelector.getSelectedHome());
}
connectionInfo.setProviderProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB, String.valueOf(showNonDefault.getSelection()));
connectionInfo.setProviderProperty(PostgreConstants.PROP_SHOW_TEMPLATES_DB, String.valueOf(showTemplates.getSelection()));
super.saveSettings(dataSource);
}
......@@ -276,6 +250,7 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo
public IDialogPage[] getSubPages(boolean extrasOnly)
{
return new IDialogPage[] {
new PostgreConnectionPageAdvanced(),
new DriverPropertiesDialogPage(this)
};
}
......
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com)
*
* 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.ext.postgresql.ui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.dialogs.connection.ConnectionPageAbstract;
import org.jkiss.utils.CommonUtils;
/**
* PostgreConnectionPageAdvanced
*/
public class PostgreConnectionPageAdvanced extends ConnectionPageAbstract
{
private Button showNonDefault;
private Button showTemplates;
private Combo ddPlainBehaviorCombo;
private Combo ddTagBehaviorCombo;
public PostgreConnectionPageAdvanced()
{
setTitle("PostgreSQL");
setDescription("PostgreSQL - " + PostgreMessages.dialog_setting_connection_settings);
}
@Override
public void dispose()
{
super.dispose();
}
@Override
public void createControl(Composite parent)
{
Composite cfgGroup = new Composite(parent, SWT.NONE);
GridLayout gl = new GridLayout(1, false);
cfgGroup.setLayout(gl);
GridData gd = new GridData(GridData.FILL_BOTH);
cfgGroup.setLayoutData(gd);
{
Group secureGroup = new Group(cfgGroup, SWT.NONE);
secureGroup.setText(PostgreMessages.dialog_setting_connection_settings);
secureGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
secureGroup.setLayout(new GridLayout(2, false));
showNonDefault = UIUtils.createCheckbox(secureGroup, PostgreMessages.dialog_setting_connection_nondefaultDatabase, PostgreMessages.dialog_setting_connection_nondefaultDatabase_tip, false, 2);
showNonDefault.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
showTemplates.setEnabled(showNonDefault.getSelection());
}
});
showTemplates = UIUtils.createCheckbox(secureGroup, PostgreMessages.dialog_setting_connection_show_templates, PostgreMessages.dialog_setting_connection_show_templates_tip, false, 2);
}
{
Group secureGroup = new Group(cfgGroup, SWT.NONE);
secureGroup.setText(PostgreMessages.dialog_setting_group_sql);
secureGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
secureGroup.setLayout(new GridLayout(2, false));
ddPlainBehaviorCombo = UIUtils.createLabelCombo(secureGroup, PostgreMessages.dialog_setting_sql_dd_plain_label, PostgreMessages.dialog_setting_sql_dd_plain_tip, SWT.DROP_DOWN | SWT.READ_ONLY);
ddPlainBehaviorCombo.add(PostgreMessages.dialog_setting_sql_dd_string);
ddPlainBehaviorCombo.add(PostgreMessages.dialog_setting_sql_dd_code_block);
ddTagBehaviorCombo = UIUtils.createLabelCombo(secureGroup, PostgreMessages.dialog_setting_sql_dd_tag_label, PostgreMessages.dialog_setting_sql_dd_tag_tip, SWT.DROP_DOWN | SWT.READ_ONLY);
ddTagBehaviorCombo.add(PostgreMessages.dialog_setting_sql_dd_string);
ddTagBehaviorCombo.add(PostgreMessages.dialog_setting_sql_dd_code_block);
}
setControl(cfgGroup);
loadSettings();
}
@Override
public boolean isComplete()
{
return true;
}
@Override
public void loadSettings()
{
// Load values from new connection info
DBPPreferenceStore globalPrefs = DBWorkbench.getPlatform().getPreferenceStore();
DBPConnectionConfiguration connectionInfo = site.getActiveDataSource().getConnectionConfiguration();
showNonDefault.setSelection(CommonUtils.getBoolean(connectionInfo.getProviderProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB), false));
showTemplates.setSelection(CommonUtils.getBoolean(connectionInfo.getProviderProperty(PostgreConstants.PROP_SHOW_TEMPLATES_DB), false));
showTemplates.setEnabled(showNonDefault.getSelection());
ddPlainBehaviorCombo.select(CommonUtils.getBoolean(
connectionInfo.getProviderProperty(PostgreConstants.PROP_DD_PLAIN_STRING),
globalPrefs.getBoolean(PostgreConstants.PROP_DD_PLAIN_STRING)) ? 0 : 1);
ddTagBehaviorCombo.select(CommonUtils.getBoolean(
connectionInfo.getProviderProperty(PostgreConstants.PROP_DD_TAG_STRING),
globalPrefs.getBoolean(PostgreConstants.PROP_DD_TAG_STRING)) ? 0 : 1);
}
@Override
public void saveSettings(DBPDataSourceContainer dataSource)
{
DBPConnectionConfiguration connectionCfg = dataSource.getConnectionConfiguration();
connectionCfg.setProviderProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB, String.valueOf(showNonDefault.getSelection()));
connectionCfg.setProviderProperty(PostgreConstants.PROP_SHOW_TEMPLATES_DB, String.valueOf(showTemplates.getSelection()));
connectionCfg.setProviderProperty(PostgreConstants.PROP_DD_PLAIN_STRING, String.valueOf(ddPlainBehaviorCombo.getSelectionIndex() == 0));
connectionCfg.setProviderProperty(PostgreConstants.PROP_SHOW_TEMPLATES_DB, String.valueOf(ddTagBehaviorCombo.getSelectionIndex() == 0));
saveConnectionURL(connectionCfg);
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com)
*
* 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.ext.postgresql.ui;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.preferences.AbstractPrefPage;
import org.jkiss.dbeaver.ui.preferences.PreferenceStoreDelegate;
/**
* PrefPagePostgreSQL
*/
public class PrefPagePostgreSQL extends AbstractPrefPage
{
public static final String PAGE_ID = "org.jkiss.dbeaver.preferences.postgresql.general"; //$NON-NLS-1$
private Button showNonDefault;
private Button showTemplates;
public PrefPagePostgreSQL()
{
super();
setPreferenceStore(new PreferenceStoreDelegate(DBWorkbench.getPlatform().getPreferenceStore()));
}
@Override
protected Control createContents(Composite parent) {
Composite cfgGroup = new Composite(parent, SWT.NONE);
GridLayout gl = new GridLayout(1, false);
gl.marginHeight = 10;
gl.marginWidth = 10;
cfgGroup.setLayout(gl);
GridData gd = new GridData(GridData.FILL_BOTH);
cfgGroup.setLayoutData(gd);
{
Group secureGroup = new Group(cfgGroup, SWT.NONE);
secureGroup.setText(PostgreMessages.dialog_setting_connection_settings);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 4;
secureGroup.setLayoutData(gd);
secureGroup.setLayout(new GridLayout(2, false));
showNonDefault = UIUtils.createCheckbox(secureGroup,
PostgreMessages.dialog_setting_connection_nondefaultDatabase,
PostgreMessages.dialog_setting_connection_nondefaultDatabase_tip,
getPreferenceStore().getBoolean(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB),
2);
showNonDefault.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
showTemplates.setEnabled(showNonDefault.getSelection());
}
});
showTemplates = UIUtils.createCheckbox(secureGroup,
PostgreMessages.dialog_setting_connection_show_templates,
PostgreMessages.dialog_setting_connection_show_templates_tip,
getPreferenceStore().getBoolean(PostgreConstants.PROP_SHOW_TEMPLATES_DB),
2);
}
setControl(cfgGroup);
return cfgGroup;
}
@Override
public boolean performOk() {
IPreferenceStore preferenceStore = getPreferenceStore();
preferenceStore.setValue(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB, String.valueOf(showNonDefault.getSelection()));
preferenceStore.setValue(PostgreConstants.PROP_SHOW_TEMPLATES_DB, String.valueOf(showTemplates.getSelection()));
return super.performOk();
}
}
......@@ -18,6 +18,8 @@ package org.jkiss.dbeaver.ext.postgresql.ui.sql;
import org.eclipse.jface.text.rules.IRule;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.runtime.sql.SQLRuleProvider;
import java.util.List;
......@@ -28,9 +30,9 @@ import java.util.List;
class PostgreDialectRules implements SQLRuleProvider {
@Override
public void extendRules(@NotNull List<IRule> rules, @NotNull RulePosition position) {
public void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List<IRule> rules, @NotNull RulePosition position) {
if (position == RulePosition.INITIAL || position == RulePosition.PARTITION) {
rules.add(new PostgreDollarQuoteRule(position == RulePosition.PARTITION));
rules.add(new PostgreDollarQuoteRule(dataSource, position == RulePosition.PARTITION));
}
}
......
......@@ -23,19 +23,33 @@ import org.eclipse.jface.text.rules.IPredicateRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.swt.SWT;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.SQLBlockToggleToken;
import org.jkiss.utils.CommonUtils;
class PostgreDollarQuoteRule implements IPredicateRule {
private final boolean partitionRule;
private final boolean ddPlainIsString;
private final boolean ddTagIsString;
private final IToken partStringToken, partCodeToken;
private final IToken stringToken, delimiterToken;
PostgreDollarQuoteRule(boolean partitionRule) {
PostgreDollarQuoteRule(DBPDataSourceContainer dataSource, boolean partitionRule) {
this.partitionRule = partitionRule;
boolean ddPlainDefault = DBWorkbench.getPlatform().getPreferenceStore().getBoolean(PostgreConstants.PROP_DD_PLAIN_STRING);
boolean ddTagDefault = DBWorkbench.getPlatform().getPreferenceStore().getBoolean(PostgreConstants.PROP_DD_TAG_STRING);
ddPlainIsString = dataSource == null ?
ddPlainDefault :
CommonUtils.getBoolean(dataSource.getActualConnectionConfiguration().getProviderProperty(PostgreConstants.PROP_DD_PLAIN_STRING), ddPlainDefault);
ddTagIsString = dataSource == null ?
ddTagDefault :
CommonUtils.getBoolean(dataSource.getActualConnectionConfiguration().getProviderProperty(PostgreConstants.PROP_DD_TAG_STRING), ddTagDefault);
this.partStringToken = new Token(SQLParserPartitions.CONTENT_TYPE_SQL_STRING);
this.partCodeToken = new Token(IDocument.DEFAULT_CONTENT_TYPE);
......@@ -68,7 +82,7 @@ class PostgreDollarQuoteRule implements IPredicateRule {
totalRead++;
if (c == '$') {
if (charsRead <= 1) {
if (charsRead <= 1 ? ddPlainIsString : ddTagIsString) {
// Here is a trick - dollar quote without preceding AS or DO and without tag is a string.
// Quote with tag is just a block toggle.
// I'm afraid we can't do more (#6608, #7183)
......
......@@ -40,6 +40,8 @@ public class PostgreConstants {
public static final String PROP_SHOW_NON_DEFAULT_DB = DBConstants.INTERNAL_PROP_PREFIX + "show-non-default-db@";
public static final String PROP_SHOW_TEMPLATES_DB = DBConstants.INTERNAL_PROP_PREFIX + "show-template-db@";
public static final String PROP_DD_PLAIN_STRING = "postgresql.dd.plain.string";
public static final String PROP_DD_TAG_STRING = "postgresql.dd.tag.string";
public static final String PROP_SSL = "ssl";
......
......@@ -28,9 +28,11 @@ import org.jkiss.dbeaver.model.connection.DBPNativeClientLocation;
import org.jkiss.dbeaver.model.connection.DBPNativeClientLocationManager;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSourceProvider;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCURL;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.OSDescriptor;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.utils.PrefUtils;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.dbeaver.utils.WindowsRegistry;
import org.jkiss.utils.CommonUtils;
......@@ -47,6 +49,12 @@ public class PostgreDataSourceProvider extends JDBCDataSourceProvider implements
static {
connectionsProps = new HashMap<>();
DBPPreferenceStore preferenceStore = DBWorkbench.getPlatform().getPreferenceStore();
if (preferenceStore != null) {
PrefUtils.setDefaultPreferenceValue(preferenceStore, PostgreConstants.PROP_DD_PLAIN_STRING, false);
PrefUtils.setDefaultPreferenceValue(preferenceStore, PostgreConstants.PROP_DD_TAG_STRING, false);
}
}
public static Map<String, String> getConnectionsProps() {
......
......@@ -18,6 +18,8 @@ package org.jkiss.dbeaver.runtime.sql;
import org.eclipse.jface.text.rules.IRule;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import java.util.List;
......@@ -35,6 +37,6 @@ public interface SQLRuleProvider {
KEYWORDS
}
void extendRules(@NotNull List<IRule> rules, @NotNull RulePosition position);
void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List<IRule> rules, @NotNull RulePosition position);
}
......@@ -586,7 +586,7 @@ public abstract class SQLEditorBase extends BaseTextEditor implements DBPContext
IDocument document = getDocument();
if (document instanceof IDocumentExtension3) {
IDocumentPartitioner partitioner = new FastPartitioner(
new SQLPartitionScanner(dialect),
new SQLPartitionScanner(getDataSource(), dialect),
SQLParserPartitions.SQL_CONTENT_TYPES);
partitioner.connect(document);
try {
......
......@@ -21,6 +21,7 @@ import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITypedRegion;
import org.eclipse.jface.text.TextUtilities;
import org.eclipse.jface.text.rules.*;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions;
......@@ -41,6 +42,7 @@ import java.util.List;
*/
public class SQLPartitionScanner extends RuleBasedPartitionScanner {
private final DBPDataSource dataSource;
// Syntax highlight
private final List<IPredicateRule> rules = new ArrayList<>();
private final IToken commentToken = new Token(SQLParserPartitions.CONTENT_TYPE_SQL_COMMENT);
......@@ -57,8 +59,7 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
* @see IWordDetector#isWordStart
*/
@Override
public boolean isWordStart(char c)
{
public boolean isWordStart(char c) {
return (c == '/');
}
......@@ -66,8 +67,7 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
* @see IWordDetector#isWordPart
*/
@Override
public boolean isWordPart(char c)
{
public boolean isWordPart(char c) {
return (c == '*' || c == '/');
}
}
......@@ -79,39 +79,37 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
private IToken successToken;
public EmptyCommentRule(IToken successToken)
{
public EmptyCommentRule(IToken successToken) {
super(new EmptyCommentDetector());
this.successToken = successToken;
addWord("/**/", this.successToken); //$NON-NLS-1$
}
@Override
public IToken evaluate(ICharacterScanner scanner, boolean resume)
{
public IToken evaluate(ICharacterScanner scanner, boolean resume) {
return evaluate(scanner);
}
@Override
public IToken getSuccessToken()
{
public IToken getSuccessToken() {
return successToken;
}
}
private void setupRules()
{
private void setupRules() {
IPredicateRule[] result = new IPredicateRule[rules.size()];
rules.toArray(result);
setPredicateRules(result);
}
private void initRules(SQLDialect dialect)
{
private void initRules(SQLDialect dialect) {
SQLRuleProvider ruleProvider = GeneralUtils.adapt(dialect, SQLRuleProvider.class);
if (ruleProvider != null) {
List<IRule> partRules = new ArrayList<>();
ruleProvider.extendRules(partRules, SQLRuleProvider.RulePosition.PARTITION);
ruleProvider.extendRules(
dataSource == null ? null : dataSource.getContainer(),
partRules,
SQLRuleProvider.RulePosition.PARTITION);
for (IRule pr : partRules) {
if (pr instanceof IPredicateRule) {
rules.add((IPredicateRule) pr);
......@@ -157,8 +155,8 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
}
}
public SQLPartitionScanner(SQLDialect dialect)
{
public SQLPartitionScanner(DBPDataSource dataSource, SQLDialect dialect) {
this.dataSource = dataSource;
initRules(dialect);
setupRules();
}
......@@ -166,14 +164,13 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
/**
* Return the String ranging from the start of the current partition to the current scanning position. Some rules
* (@see NestedMultiLineRule) need this information to calculate the comment nesting depth.
*
* @return value
*/
public String getScannedPartitionString()
{
public String getScannedPartitionString() {
try {
return fDocument.get(fPartitionOffset, fOffset - fPartitionOffset);
}
catch (Exception e) {
} catch (Exception e) {
// Do nothing
}
return "";
......@@ -188,13 +185,11 @@ public class SQLPartitionScanner extends RuleBasedPartitionScanner {
* @param doc the document to parse into partitions
* @return an array containing the document partion regions
*/
public static ITypedRegion[] getDocumentRegions(IDocument doc)
{
public static ITypedRegion[] getDocumentRegions(IDocument doc) {
ITypedRegion[] regions = null;
try {
regions = TextUtilities.computePartitioning(doc, SQLParserPartitions.SQL_PARTITIONING, 0, doc.getLength(), false);
}
catch (BadLocationException e) {
} catch (BadLocationException e) {
// ignore
}
......
......@@ -29,6 +29,7 @@ import org.eclipse.ui.themes.IThemeManager;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.model.sql.SQLSyntaxManager;
......@@ -127,6 +128,7 @@ public class SQLRuleManager extends RuleBasedScanner {
{
SQLDialect dialect = syntaxManager.getDialect();
SQLRuleProvider ruleProvider = GeneralUtils.adapt(dialect, SQLRuleProvider.class);
DBPDataSourceContainer dataSourceContainer = dataSource == null ? null : dataSource.getContainer();
boolean minimalRules = SQLEditorBase.isBigScript(editorInput);
......@@ -169,7 +171,7 @@ public class SQLRuleManager extends RuleBasedScanner {
List<IRule> rules = new ArrayList<>();
if (ruleProvider != null) {
ruleProvider.extendRules(rules, SQLRuleProvider.RulePosition.INITIAL);
ruleProvider.extendRules(dataSourceContainer, rules, SQLRuleProvider.RulePosition.INITIAL);
}
// Add rule for single-line comments.
......@@ -182,7 +184,7 @@ public class SQLRuleManager extends RuleBasedScanner {
}
if (ruleProvider != null) {
ruleProvider.extendRules(rules, SQLRuleProvider.RulePosition.CONTROL);
ruleProvider.extendRules(dataSourceContainer, rules, SQLRuleProvider.RulePosition.CONTROL);
}
if (!minimalRules) {
......@@ -228,7 +230,7 @@ public class SQLRuleManager extends RuleBasedScanner {
}
}
if (ruleProvider != null) {
ruleProvider.extendRules(rules, SQLRuleProvider.RulePosition.QUOTES);
ruleProvider.extendRules(dataSourceContainer, rules, SQLRuleProvider.RulePosition.QUOTES);
}
// Add rules for multi-line comments
......@@ -260,7 +262,7 @@ public class SQLRuleManager extends RuleBasedScanner {
}
if (ruleProvider != null) {
ruleProvider.extendRules(rules, SQLRuleProvider.RulePosition.KEYWORDS);
ruleProvider.extendRules(dataSourceContainer, rules, SQLRuleProvider.RulePosition.KEYWORDS);
}
if (!minimalRules) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册