Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
302 changes: 279 additions & 23 deletions buildSrc/src/main/groovy/GenerateDataFromManPages.groovy

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions buildSrc/src/main/resources/resolve-xinclude.xslt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">

<!-- Identity template: Copies everything as-is -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>

<!-- Process XInclude -->
<xsl:template match="xi:include">
<xsl:variable name="file" select="@href"/>
<xsl:apply-templates select="document($file)/*"/>
</xsl:template>

</xsl:stylesheet>
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,7 @@ object UnitFileIcon {
val SWAP = IconLoader.getIcon("/net/sjrx/intellij/plugins/systemdunitfiles/swap.svg", UnitFileIcon::class.java)
val TARGET = IconLoader.getIcon("/net/sjrx/intellij/plugins/systemdunitfiles/target.svg", UnitFileIcon::class.java)
val TIMER = IconLoader.getIcon("/net/sjrx/intellij/plugins/systemdunitfiles/timer.svg", UnitFileIcon::class.java)
val LINK = IconLoader.getIcon("/net/sjrx/intellij/plugins/systemdunitfiles/link.svg", UnitFileIcon::class.java)
val NETDEV = IconLoader.getIcon("/net/sjrx/intellij/plugins/systemdunitfiles/netdev.svg", UnitFileIcon::class.java)
val NETWORK = IconLoader.getIcon("/net/sjrx/intellij/plugins/systemdunitfiles/network.svg", UnitFileIcon::class.java)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package net.sjrx.intellij.plugins.systemdunitfiles.filetypes

import net.sjrx.intellij.plugins.systemdunitfiles.UnitFileIcon
import net.sjrx.intellij.plugins.systemdunitfiles.UnitFileLanguage
import org.jetbrains.annotations.Nls
import javax.swing.Icon

class LinkFileType private constructor() : AbstractUnitFileType(UnitFileLanguage.INSTANCE) {
override fun getName(): String {
return "Network Device Configuration (systemd-networkd)"
}

override fun getDescription(): String {
return displayName
}

override fun getDefaultExtension(): String {
return "link"
}

override fun getIcon(): Icon? {
return UnitFileIcon.LINK
}

override fun getDisplayName(): @Nls String {
return "Network Device Configuration (systemd-networkd)"
}

companion object {
val INSTANCE = LinkFileType()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package net.sjrx.intellij.plugins.systemdunitfiles.filetypes

import net.sjrx.intellij.plugins.systemdunitfiles.UnitFileIcon
import net.sjrx.intellij.plugins.systemdunitfiles.UnitFileLanguage
import org.jetbrains.annotations.Nls
import javax.swing.Icon

class NetDevFileType private constructor() : AbstractUnitFileType(UnitFileLanguage.INSTANCE) {
override fun getName(): String {
return "Virtual Network Device Configuration (systemd-networkd)"
}

override fun getDescription(): String {
return displayName
}

override fun getDefaultExtension(): String {
return "netdev"
}

override fun getIcon(): Icon? {
return UnitFileIcon.NETDEV
}

override fun getDisplayName(): @Nls String {
return "Virtual Network Device Configuration (systemd-networkd)"
}

companion object {
val INSTANCE = NetDevFileType()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package net.sjrx.intellij.plugins.systemdunitfiles.filetypes

import net.sjrx.intellij.plugins.systemdunitfiles.UnitFileIcon
import net.sjrx.intellij.plugins.systemdunitfiles.UnitFileLanguage
import org.jetbrains.annotations.Nls
import javax.swing.Icon

class NetworkFileType private constructor() : AbstractUnitFileType(UnitFileLanguage.INSTANCE) {
override fun getName(): String {
return "Network Configuration (systemd-networkd)"
}

override fun getDescription(): String {
return displayName
}

override fun getDefaultExtension(): String {
return "network"
}

override fun getIcon(): Icon? {
return UnitFileIcon.NETWORK
}

override fun getDisplayName(): @Nls String {
return "Network Configuration (systemd-networkd)"
}

companion object {
val INSTANCE = NetworkFileType()
}
}

Large diffs are not rendered by default.

14 changes: 8 additions & 6 deletions src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@
<fileType name="Target unit configuration for systemd" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.filetypes.TargetFileType" fieldName="INSTANCE" language="Unit File (systemd)" extensions="target"/>
<fileType name="Timer unit configuration for systemd" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.filetypes.TimerFileType" fieldName="INSTANCE" language="Unit File (systemd)" extensions="timer"/>
<fileType name="Nspawn container systemd container images" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.filetypes.NSpawnFileType" fieldName="INSTANCE" language="Unit File (systemd)" extensions="nspawn"/>
<fileType name="Network Device Configuration (systemd-networkd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.filetypes.LinkFileType" fieldName="INSTANCE" language="Unit File (systemd)" extensions="link"/>
<fileType name="Virtual Network Device Configuration (systemd-networkd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.filetypes.NetDevFileType" fieldName="INSTANCE" language="Unit File (systemd)" extensions="netdev"/>
<fileType name="Network Configuration (systemd-networkd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.filetypes.NetworkFileType" fieldName="INSTANCE" language="Unit File (systemd)" extensions="network"/>

<lang.commenter language="Unit File (systemd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.commenter.UnitFileCommenter"/>
<lang.documentationProvider language="Unit File (systemd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.documentation.UnitFileDocumentationProvider"/>
Expand All @@ -58,26 +61,25 @@
<annotator language="Unit File (systemd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.annotators.PropertyIsNotInSectionAnnotator"/>
<annotator language="Unit File (systemd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.annotators.PidFileOptionWarning"/>
<localInspection implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.inspections.UnknownKeyInSectionInspection"
groupPath="Unit files (systemd)"
groupPath="Unit files (systemd)" language="Unit File (systemd)"
shortName="UnknownKeyInSection" displayName="Unknown option in section"
groupName="Validity" enabledByDefault="true" level="WARNING"/>
<localInspection implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.inspections.InvalidValueInspection"
groupPath="Unit files (systemd)"
groupPath="Unit files (systemd)" language="Unit File (systemd)"
shortName="InvalidValue" displayName="Invalid value for option"
groupName="Validity" enabledByDefault="true" level="WARNING"/>
<localInspection implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.inspections.DeprecatedOptionsInspection"
groupPath="Unit files (systemd)"
groupPath="Unit files (systemd)" language="Unit File (systemd)"
shortName="DeprecatedKey" displayName="Deprecated options"
groupName="Deprecation" enabledByDefault="true" level="WARNING"/>
<localInspection implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.inspections.ShellSyntaxInExecDirectiveInspection"
groupPath="Unit files (systemd)"
groupPath="Unit files (systemd)" language="Unit File (systemd)"
shortName="ShellSyntaxInExecDirective" displayName="Unsupported shell meta-characters"
groupName="Validity" enabledByDefault="true" level="WARNING"/>
<localInspection implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.inspections.MissingRequiredKeyInspection"
groupPath="Unit files (systemd)"
groupPath="Unit files (systemd)" language="Unit File (systemd)"
shortName="MissingRequiredKey" displayName="Missing required key"
groupName="Validity" enabledByDefault="true" level="ERROR"/>

<completion.contributor language="Unit File (systemd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.completion.UnitFileKeyCompletionContributor"/>
<completion.contributor language="Unit File (systemd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.completion.UnitFileValueCompletionContributor"/>
<completion.contributor language="Unit File (systemd)" implementationClass="net.sjrx.intellij.plugins.systemdunitfiles.completion.UnitFileSectionCompletionContributor"/>
Expand Down
187 changes: 187 additions & 0 deletions src/main/resources/net/sjrx/intellij/plugins/systemdunitfiles/link.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading