Skip to content

Instantly share code, notes, and snippets.

@KMax
Last active March 23, 2020 21:51
Show Gist options
  • Save KMax/4d45cd035dc795e903cf7760bff669bb to your computer and use it in GitHub Desktop.
Save KMax/4d45cd035dc795e903cf7760bff669bb to your computer and use it in GitHub Desktop.
DocumentWindow removes \n symbols from an inserted string
class UnknownPrefixAnnotator : com.intellij.lang.annotation.Annotator {
...
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
...
holder
.createErrorAnnotation(element, "Uses an undeclared prefix")
.registerFix(new ResolvePrefixIntention())
...
}
...
}
class ResolvePrefixIntention : com.intellij.codeInsight.intention.BaseElementAtCaretIntentionAction() {
...
override fun invoke(project: Project, editor: Editor, element: PsiElement) {
...
editor.document.insertString(offset, "PREFIX $prefixLabel: <$prefixIRI>\n")
...
}
...
}
<idea-plugin>
<id>com.sharedvocabs.plugins.rdfandsparql</id>
<name>RDF and SPARQL</name>
<vendor
email="info@sharedvocabs.com"
url="https://gitlab.com/sharedvocabs/intellij-rdf-plugin">
sharedvocabs
</vendor>
<product-descriptor code="PRDFANDSPARQL" release-date="20200301" release-version="20201"/>
<depends>com.intellij.modules.platform</depends>
<depends>com.intellij.modules.lang</depends>
<extensions defaultExtensionNs="com.intellij">
<errorHandler
implementation="com.sharedvocabs.plugins.rdfandsparql.diagnostic.RDFAndSPARQLErrorReportSubmitter"/>
<!-- SPARQL Endpoint support -->
<toolWindow
id="SPARQL Endpoint" anchor="right" secondary="false"
icon="/icons/icon_rdf_grey.svg"
factoryClass="com.sharedvocabs.plugins.rdfandsparql.sparql.execution.registry.SPARQLEndpointRegistryToolWindowFactory"/>
<serviceViewContributor
implementation="com.sharedvocabs.plugins.rdfandsparql.sparql.execution.serviceView.SPARQLEndpointsServiceViewContributor"/>
<!-- Services -->
<applicationService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.common.services.PrefixCCLookupAPIService"/>
<applicationService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.common.services.LinkedOpenVocabulariesAPIService"/>
<applicationService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.common.services.RemoteOntologyCacheService"/>
<applicationService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.usageStatistics.RDFAndSPARQLUsageLogger"/>
<projectService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.configuration.RDFAndSPARQLPerProjectConfiguration"/>
<projectService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.sparql.execution.SPARQLEndpointManager"/>
<projectService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.sparql.execution.serviceView.SPARQLEndpointServiceViewManager"/>
<projectService
serviceImplementation="com.sharedvocabs.plugins.rdfandsparql.sparql.execution.serviceView.SPARQLEndpointServiceViewLocator"/>
<!-- Configurables -->
<projectConfigurable
id="rdfandsparql.parent"
displayName="RDF and SPARQL"
groupId="language"
instance="com.sharedvocabs.plugins.rdfandsparql.configuration.RDFAndSPARQLParentConfigurable"/>
<projectConfigurable
id="rdfandsparql.prefixdeclarations"
displayName="Prefix Declarations"
parentId="rdfandsparql.parent"
instance="com.sharedvocabs.plugins.rdfandsparql.configuration.RDFAndSPARQLPrefixDeclarationsConfigurable"
/>
<!-- Indexing -->
<indexedRootsProvider
implementation="com.sharedvocabs.plugins.rdfandsparql.common.RemoteOntologyIndexableSetContributor"/>
<fileBasedIndex
implementation="com.sharedvocabs.plugins.rdfandsparql.common.OWLOntologyPropertiesIndex"/>
<fileBasedIndex
implementation="com.sharedvocabs.plugins.rdfandsparql.common.OWLOntologyClassesIndex"/>
<!-- SPARQL -->
<fileType language="SPARQL" name="SPARQL" extensions="sparql;rq"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.SPARQLFileType"/>
<lang.parserDefinition
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.parsing.SPARQLParserDefinition"/>
<lang.syntaxHighlighterFactory
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.highlighting.SPARQLSyntaxHighlighterFactory"/>
<lang.refactoringSupport
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.psi.SPARQLRefactoringSupportProvider"
/>
<lang.commenter
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.common.RDFAndSPARQLCommenter"/>
<lang.braceMatcher
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.highlighting.SPARQLPairedBraceMatcher"/>
<lang.formatter
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.formatter.SPARQLFormattingModelBuilder"/>
<annotator
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.SPARQLUnknownPrefixAnnotator"/>
<annotator
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.common.annotator.UnknownNamespaceAnnotator"/>
<completion.contributor
language="SPARQL"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.sparql.completion.SPARQLCompletionContributor"
/>
<renameHandler
implementation="com.sharedvocabs.plugins.rdfandsparql.sparql.psi.SPARQLVarRenameHandler"
/>
<!-- Will be supported in 2019.3
<editorFactoryListener
implementation="com.sharedvocabs.plugins.rdfandsparql.sparql.editor.SPARQLEditorFactoryListener"/>
-->
<actionPromoter
implementation="com.sharedvocabs.plugins.rdfandsparql.sparql.editor.SPARQLFileEditorActionPromoter"/>
<!-- Turtle -->
<fileType language="Turtle" name="Turtle" extensions="ttl"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.turtle.TurtleFileType"/>
<lang.parserDefinition
language="Turtle"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.turtle.parsing.TurtleParserDefinition"/>
<lang.syntaxHighlighterFactory
language="Turtle"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.turtle.highlighting.TurtleSyntaxHighlighterFactory"/>
<lang.commenter
language="Turtle"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.common.RDFAndSPARQLCommenter"/>
<lang.braceMatcher
language="Turtle"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.turtle.highlighting.TurtlePairedBraceMatcher"/>
<annotator
language="Turtle"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.turtle.TurtleUnknownPrefixAnnotator"/>
<annotator
language="Turtle"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.common.annotator.UnknownNamespaceAnnotator"/>
<completion.contributor
language="Turtle"
implementationClass="com.sharedvocabs.plugins.rdfandsparql.turtle.completion.TurtleCompletionContributor"
/>
</extensions>
<project-components>
<component>
<implementation-class>
com.sharedvocabs.plugins.rdfandsparql.usageStatistics.RDFAndSPARQLFileUsageTracker
</implementation-class>
</component>
<component>
<implementation-class>
com.sharedvocabs.plugins.rdfandsparql.sparql.editor.SPARQLEditorFactoryListener
</implementation-class>
</component>
</project-components>
<actions>
<!-- Groups -->
<group id="rdfandsparql.SPARQLFileEditorToolbar" popup="false"/>
<!-- Actions -->
<action id="com.sharedvocabs.plugins.rdfandsparql.sparql.execution.actions.ExecuteSPARQLQueryAction"
class="com.sharedvocabs.plugins.rdfandsparql.sparql.execution.actions.ExecuteSPARQLQueryAction"
text="Execute" popup="true" use-shortcut-of="EditorSplitLine">
<add-to-group group-id="EditorPopupMenu.Run" anchor="first"/>
<add-to-group group-id="rdfandsparql.SPARQLFileEditorToolbar" anchor="first"/>
<keyboard-shortcut first-keystroke="control ENTER" keymap="$default"/>
</action>
</actions>
</idea-plugin>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment