diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..3272bf1 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,5 +2,6 @@
+
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 0568aa3..0000000
--- a/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# C/C++ very basic support for IntelliJ IDEA CE
-
-... or how to make an IJ IDEA a little VSCode...
-
-## Includes
-- making new C or C++ file (e.g., in empty project)
-- syntax highlighting is actually provided by IJ itself;
-- refactoring, code analysis, advanced types of highlighting is provided with Language Server Protocol via lsp4ij plugin from Redhat.
-
-## Not (yet) implemented
-- CMake, make, ninja any project build support (just use Terminal...);
-- STM32 (or any other embedded C) projects
-- choosing various language standards for Clangd
-- any additional checks except the clangd provides by default;
-
-## Additional requirements
-- clangd visible through PATH
-- clang/clang++ for compiling projects manually
-
-## How to start
-
-Install plugin >> Restart IDE
-
-Empty project >> New file >> New C (or C++) file
-
-Enjoy!
diff --git a/build.gradle.kts b/build.gradle.kts
index 8a7111f..e2d6415 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
}
group = "com.gregorybednov"
-version = "1.0.1"
+version = "1.0.0"
repositories {
mavenCentral()
diff --git a/src/main/kotlin/org/gregorybednov/NewCFileAction.kt b/src/main/kotlin/org/gregorybednov/NewCFileAction.kt
deleted file mode 100644
index 2abbe19..0000000
--- a/src/main/kotlin/org/gregorybednov/NewCFileAction.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.gregorybednov
-
-import com.intellij.ide.actions.CreateFileFromTemplateAction
-import com.intellij.ide.actions.CreateFileFromTemplateDialog
-import com.intellij.openapi.project.Project
-import com.intellij.psi.PsiDirectory
-import org.gregorybednov.clsp.CIcon
-
-
-class NewCFileAction :
- CreateFileFromTemplateAction("C File", "Creates new C file", CIcon.FILE ) {
- override fun buildDialog(project: Project, directory: PsiDirectory, builder: CreateFileFromTemplateDialog.Builder) {
- builder
- .setTitle("New C File")
- .addKind("My file", CIcon.FILE, "DefaultTemplate.c")
- }
-
- override fun getActionName(directory: PsiDirectory?, newName: String, templateName: String?): String {
- return "C File"
- }
-
- override fun getDefaultTemplateProperty(): String {
- return "DefaultTemplate.c";
- }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/org/gregorybednov/NewCppFileAction.kt b/src/main/kotlin/org/gregorybednov/NewCppFileAction.kt
deleted file mode 100644
index 18e8c03..0000000
--- a/src/main/kotlin/org/gregorybednov/NewCppFileAction.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.gregorybednov
-
-import com.intellij.ide.actions.CreateFileFromTemplateAction
-import com.intellij.ide.actions.CreateFileFromTemplateDialog
-import com.intellij.openapi.project.Project
-import com.intellij.psi.PsiDirectory
-import org.gregorybednov.clsp.CIcon
-import org.gregorybednov.clsp.CppIcon
-
-
-class NewCppFileAction :
- CreateFileFromTemplateAction("C++ File", "Creates new C++ file", CppIcon.FILE ) {
- override fun buildDialog(project: Project, directory: PsiDirectory, builder: CreateFileFromTemplateDialog.Builder) {
- builder
- .setTitle("New C++ File")
- .addKind("My file", CIcon.FILE, "DefaultTemplate.cpp")
- }
-
- override fun getActionName(directory: PsiDirectory?, newName: String, templateName: String?): String {
- return "C++ File"
- }
-
- override fun getDefaultTemplateProperty(): String {
- return "DefaultTemplate.cpp";
- }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/org/gregorybednov/clsp/CLanguage.kt b/src/main/kotlin/org/gregorybednov/clsp/CLanguage.kt
deleted file mode 100644
index ea844fd..0000000
--- a/src/main/kotlin/org/gregorybednov/clsp/CLanguage.kt
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.gregorybednov.clsp
-
-import com.intellij.execution.configurations.GeneralCommandLine
-import com.intellij.lang.Language
-import com.intellij.notification.NotificationGroupManager
-import com.intellij.notification.NotificationType
-import com.intellij.openapi.fileTypes.LanguageFileType
-import com.intellij.openapi.project.Project
-import com.intellij.openapi.util.IconLoader.getIcon
-import com.intellij.util.EnvironmentUtil
-import com.redhat.devtools.lsp4ij.LanguageServerFactory
-import com.redhat.devtools.lsp4ij.LanguageServerManager
-import com.redhat.devtools.lsp4ij.server.OSProcessStreamConnectionProvider
-import com.redhat.devtools.lsp4ij.server.StreamConnectionProvider
-import javax.swing.Icon
-import org.jetbrains.annotations.NotNull
-import java.io.File
-import java.nio.file.Paths
-import kotlin.io.path.pathString
-
-object CLanguage : Language("C") {
- private fun readResolve(): Any = CLanguage
- val INSTANCE: CLanguage = CLanguage
-}
-
-object CIcon {
- val FILE: Icon = getIcon("/icons/clogo.svg", CIcon::class.java)
-}
-
-class CFileType private constructor() : LanguageFileType(CLanguage.INSTANCE) {
- override fun getName(): String { return "C File" }
- override fun getDescription(): String { return "C language file" }
- override fun getDefaultExtension(): String { return "c" }
- override fun getIcon(): Icon { return CIcon.FILE }
- companion object { val INSTANCE: CFileType = CFileType() }
-}
-
-class CLanguageServer(project: Project) : OSProcessStreamConnectionProvider() {
- private fun findExecutableInPATH(executable: String) =
- EnvironmentUtil.getEnvironmentMap().values.flatMap { it.split(File.pathSeparator) }
- .map { File(Paths.get(it, executable).pathString) }.find { it.exists() && it.canExecute() }?.path
-
- init {
- val clangdPath = findExecutableInPATH("clangd")
- if (clangdPath.isNullOrEmpty()) {
- NotificationGroupManager.getInstance().getNotificationGroup("C/C++ notifications").createNotification(
- "C LSP",
- "LSP server clangd not found. Make sure it is installed properly (and is available in PATH)," +
- "and restart the IDE.",
- NotificationType.ERROR).notify(project)
- LanguageServerManager.getInstance(project).stop("CLanguageServer")
- } else {
- val commandLine = GeneralCommandLine("clangd")
- commandLine.setWorkDirectory(project.basePath)
- super.setCommandLine(commandLine)
- }
- }
-}
-
-class CLanguageServerFactory : LanguageServerFactory {
- @NotNull
- override fun createConnectionProvider(project: Project): StreamConnectionProvider {
- return CLanguageServer(project)
- }
-}
diff --git a/src/main/kotlin/org/gregorybednov/clsp/CTextMateBundleProvider.kt b/src/main/kotlin/org/gregorybednov/clsp/CTextMateBundleProvider.kt
new file mode 100644
index 0000000..ba511e5
--- /dev/null
+++ b/src/main/kotlin/org/gregorybednov/clsp/CTextMateBundleProvider.kt
@@ -0,0 +1,13 @@
+package org.gregorybednov.clsp
+
+import org.jetbrains.plugins.textmate.api.TextMateBundleProvider
+import org.jetbrains.plugins.textmate.api.TextMateBundleProvider.PluginBundle
+import kotlin.io.path.Path
+
+class CTextMateBundleProvider : TextMateBundleProvider {
+ override fun getBundles(): List {
+ return listOf(
+ PluginBundle("c/c++", Path("/Users/gregorybednov/Downloads/better-cpp-syntax"))
+ )
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index d8f0010..1813763 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -10,18 +10,7 @@
com.redhat.devtools.lsp4ij
org.jetbrains.plugins.textmate
-
-
-
-
-
-
-
-
-
-
-
+
@@ -52,6 +42,9 @@
+
+
+
diff --git a/src/main/resources/fileTemplates/internal/DefaultTemplate.c.ft b/src/main/resources/fileTemplates/internal/DefaultTemplate.c.ft
deleted file mode 100644
index c1a6458..0000000
--- a/src/main/resources/fileTemplates/internal/DefaultTemplate.c.ft
+++ /dev/null
@@ -1,6 +0,0 @@
-\#include
-
-int main() {
- printf("Hello world");
- return 0;
-}
\ No newline at end of file
diff --git a/src/main/resources/fileTemplates/internal/DefaultTemplate.cpp.ft b/src/main/resources/fileTemplates/internal/DefaultTemplate.cpp.ft
deleted file mode 100644
index 29bdc26..0000000
--- a/src/main/resources/fileTemplates/internal/DefaultTemplate.cpp.ft
+++ /dev/null
@@ -1,6 +0,0 @@
-\#include
-
-int main() {
- std::cout << "Hello world";
- return 0;
-}
\ No newline at end of file
diff --git a/src/main/resources/icons/clogo.svg b/src/main/resources/icons/clogo.svg
deleted file mode 100644
index 591e246..0000000
--- a/src/main/resources/icons/clogo.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
diff --git a/src/main/resources/icons/cpplogo.svg b/src/main/resources/icons/cpplogo.svg
index 8a246c9..71f3958 100644
--- a/src/main/resources/icons/cpplogo.svg
+++ b/src/main/resources/icons/cpplogo.svg
@@ -4,20 +4,20 @@
width="16" height="16" viewBox="0 0 306 344.35" enable-background="new 0 0 306 344.35" xml:space="preserve">
-
-
-
+
-
+
-
+