/* * Turns the vector into an Array of ICompletionProposal objects */ protected SQLCompletionProposal createCompletionProposal( String replaceString, String displayString, String description, @Nullable DBPImage image, boolean isObject, @Nullable DBPNamedObject object) { DBPPreferenceStore store = getPreferences(); DBPDataSource dataSource = editor.getDataSource(); if (dataSource != null) { if (isObject) { // Escape replace string if required replaceString = DBUtils.getQuotedIdentifier(dataSource, replaceString); } } // If we have quoted string then ignore pref settings boolean quotedString = wordDetector.isQuoted(replaceString); final int proposalCase = quotedString ? SQLPreferenceConstants.PROPOSAL_CASE_DEFAULT : store.getInt(SQLPreferenceConstants.PROPOSAL_INSERT_CASE); switch (proposalCase) { case SQLPreferenceConstants.PROPOSAL_CASE_UPPER: replaceString = replaceString.toUpperCase(); break; case SQLPreferenceConstants.PROPOSAL_CASE_LOWER: replaceString = replaceString.toLowerCase(); break; default: DBPIdentifierCase convertCase = quotedString && dataSource instanceof SQLDataSource ? ((SQLDataSource) dataSource).getSQLDialect().storesQuotedCase() : DBPIdentifierCase.MIXED; replaceString = convertCase.transform(replaceString); break; } Image img = image == null ? null : DBeaverIcons.getImage(image); return new SQLCompletionProposal( editor.getSyntaxManager(), displayString, replaceString, // replacementString wordDetector, // wordDetector replaceString.length(), // cursorPosition the position of the cursor following the insert // relative to replacementOffset img, // image to display new ContextInformation( img, displayString, displayString), // the context information associated with this proposal description, object); }
@Override public Image getTitleImage() { return DBeaverIcons.getImage(DBIcon.TYPE_IMAGE); }