Add feature to database console

I'm looking to add a feature to the database console tool window, and I was wondering:

 

1) Is there a way to add functionality to the database console? I'd like to add a button to its toolbar, and I'd like it to trigger an action that has access to the information the console has - both the text contents of the query window and the database connection

 

2) Is there any documentation about the extension points for database functionality? The best I've found is this list of extension points in the DatabasePlugin.xml of database-impl.jar:

 

<extensionPoints>
<extensionPoint qualifiedName="com.intellij.database.dataSourceDetector" interface="com.intellij.database.autoconfig.DataSourceDetector"/>
<extensionPoint qualifiedName="com.intellij.database.configValidator" interface="com.intellij.database.dataSource.validation.DatabaseConfigValidator"/>
<extensionPoint qualifiedName="com.intellij.database.urlEditorInspector" interface="com.intellij.database.dataSource.url.ui.UrlEditorInspector"/>
<extensionPoint qualifiedName="com.intellij.database.explainPlanProvider" interface="com.intellij.database.plan.ExplainPlanProvider"/>
<extensionPoint qualifiedName="com.intellij.database.dataSourceProviderFactory" interface="com.intellij.database.dataSource.DataSourceProviderFactory"/>
<extensionPoint qualifiedName="com.intellij.database.dbPsiManager" interface="com.intellij.database.psi.DbPsiManagerSpi" area="IDEA_PROJECT"/>
<extensionPoint qualifiedName="com.intellij.database.consoleProvider" interface="com.intellij.database.script.PersistenceConsoleProvider"/>
<extensionPoint qualifiedName="com.intellij.database.queryParametersProvider" beanClass="com.intellij.lang.LanguageExtensionPoint">
<with attribute="implementationClass" implements="com.intellij.database.script.QueryParametersProvider"/>
</extensionPoint>
<extensionPoint qualifiedName="com.intellij.database.selectInProvider" interface="com.intellij.util.Function"/>
<extensionPoint qualifiedName="com.intellij.database.synchronizeHandler" interface="com.intellij.database.SynchronizeHandler"/>
<extensionPoint qualifiedName="com.intellij.database.dataConsumer" interface="com.intellij.database.datagrid.DataConsumer"/>
<extensionPoint qualifiedName="com.intellij.database.dataProducer" interface="com.intellij.database.datagrid.DataProducer"/>
<extensionPoint qualifiedName="com.intellij.database.dataAuditor" interface="com.intellij.database.datagrid.DataAuditor"/>
<extensionPoint qualifiedName="com.intellij.database.genericSourceLoaderProvider" interface="com.intellij.database.introspection.GenericIntrospector$SourceLoaderProvider"/>
<extensionPoint qualifiedName="com.intellij.database.parameterPatternProvider" interface="com.intellij.database.settings.DatabaseParameterPatternProvider"/>
</extensionPoints>

But I'm not sure whether this is properly public (because it's in the impl jar, not the open-api one), and all the extensions seem geared towards supporting new languages, rather than adding extra functionality

1

Please sign in to leave a comment.