IntelliJ IDEA Open API and Plugin Development Is Deprecated. Join our JetBrains Platform Community.

IntelliJ Plugin: "sdk does not exist"

已回答

I'm trying to create a plugin by following this link

I've written a bnf and lexer file and generated the code. When I build a project, I get following error 

error: package org.plugin.ghsatpute.sdk does not exist
import org.plugin.ghsatpute.sdk.SimpleLexer;

I double-checked that the package exists and there is a file `SimpleLexer`

What am I missing?

0

Ghsatpute,

Isn't your Lexer file inside of the language directory? Try with:

import org.plugin.ghsatpute.sdk.language.SimpleLexer;

 

1

Yes, you're right. That was silly mistake from my side. 

In addition to fixing the package naming, I did this. I added generating lexer and parser code in the build.gradle as below 

import org.jetbrains.grammarkit.tasks.GenerateLexer
import org.jetbrains.grammarkit.tasks.GenerateParser

plugins {
id 'java'
id 'org.jetbrains.intellij' version '0.4.18'
id "org.jetbrains.grammarkit" version "2020.1.2"
}

...

sourceSets {
main {
java.srcDirs += 'src/main/gen'
}
}

...

task generateServerlessLexer(type: GenerateLexer) {
source = "src/main/java/org/ghsatpute/grammar/SimpleLexer.flex"
targetDir = "src/main/gen/org/plugin/ghsatpute/language"
targetClass = "SimpleLexer"
purgeOldFiles = true
}

task generateServerlessParser(type: GenerateParser) {
source = "src/main/java/org/ghsatpute/grammar/Simple.bnf"
targetRoot = "src/main/gen"
pathToParser = "org/plugin/ghsatpute/language/parser/SimpleParser.java"
pathToPsiRoot = "org/plugin/ghsatpute/language/psi"
purgeOldFiles = true
}

compileJava {
dependsOn generateServerlessLexer
dependsOn generateServerlessParser
}


Added this so that it can help others who face the same issue. 

0

请先登录再写评论。