Commit Diff


commit - edc0c44350371dc0b3e15d49841846c50800bf67
commit + 8f270315ac1a03425e7daccc1db3b14cd7080df8
blob - /dev/null
blob + b5a39a068886b33c37f6f1679ea1a6aac2223b8b (mode 644)
--- /dev/null
+++ src/main/kotlin/dev/nezzontli/gotvcs/GotVcs.kt
@@ -0,0 +1,25 @@
+package dev.nezzontli.gotvcs
+
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.vcs.AbstractVcs
+import com.intellij.openapi.vcs.VcsKey
+import com.intellij.openapi.vcs.changes.ChangeProvider
+
+class GotVcs(project: Project) : AbstractVcs(project, NAME) {
+
+    private val commandLine = GotCommandLineWrapper()
+    private val changeProvider = GotChangeProvider(commandLine)
+
+    override fun getDisplayName(): String = NAME
+
+    override fun getChangeProvider(): ChangeProvider = changeProvider
+
+    companion object {
+        const val NAME = "got"
+
+        private val KEY = createKey(NAME)
+
+        @JvmStatic
+        fun getKey(): VcsKey = KEY
+    }
+}
blob - /dev/null
blob + 5015cec1440be351d545ccd6a7b46ec9ffababb3 (mode 644)
--- /dev/null
+++ src/main/kotlin/dev/nezzontli/gotvcs/GotVcsRootChecker.kt
@@ -0,0 +1,14 @@
+package dev.nezzontli.gotvcs
+
+import com.intellij.openapi.vcs.VcsKey
+import com.intellij.openapi.vcs.VcsRootChecker
+import java.io.File
+
+class GotVcsRootChecker : VcsRootChecker() {
+
+    override fun getSupportedVcs(): VcsKey = GotVcs.getKey()
+
+    override fun isRoot(path: String): Boolean = File(path, ".got").isDirectory
+
+    override fun isVcsDir(path: String): Boolean = path == ".got"
+}
blob - /dev/null
blob + 7691b318ffa7f5dfcd4c30985ff5418261cd2591 (mode 644)
--- /dev/null
+++ src/main/resources/META-INF/plugin.xml
@@ -0,0 +1,15 @@
+<idea-plugin>
+    <id>dev.nezzontli.gotvcs</id>
+    <name>Game of Trees (got) VCS</name>
+    <vendor>ale</vendor>
+
+    <depends>com.intellij.modules.vcs</depends>
+
+    <extensions defaultExtensionNs="com.intellij">
+        <vcs name="got"
+             vcsClass="dev.nezzontli.gotvcs.GotVcs"
+             displayName="got"
+             administrativeAreaName=".got"/>
+        <vcsRootChecker implementation="dev.nezzontli.gotvcs.GotVcsRootChecker"/>
+    </extensions>
+</idea-plugin>