0

I try to extend some old IntelliJ plug-in

And there is my build.gradle

    buildscript {
    ext.kotlin_version = '1.6.0'

    repositories {
        mavenCentral()
        maven { url 'https://jitpack.io'}
        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots/"
        }
        maven {
            url 'https://dl.bintray.com/jetbrains/intellij-plugin-service'
        }
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

plugins {
    id "org.jetbrains.intellij" version "0.5.0"
    id "org.jetbrains.grammarkit" version "2022.3"

}

group 'com.interfaced'
version '0.2.7'

apply plugin: 'kotlin'
apply plugin: 'org.jetbrains.intellij'

sourceSets {
    all {
        java.srcDirs += ['src/main/gen']
        kotlin.srcDirs += ['src/main/kotlin']
        resources.srcDirs = ['src/main/resources']
    }
}


grammarKit {
    jflexRelease = '1.7.0-2'
}

repositories {
    mavenCentral()
    maven {
        url "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/"
    }
}

dependencies {
    // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib
    implementation group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: '1.7.22'


    implementation group: 'junit', name: 'junit', version: '4.12'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7"

}

intellij {

    pluginName 'BrightScript'

    version '2022.3'

}

patchPluginXml {
    changeNotes """
      <ul>
        <li>Support for 2020.2</li>
      </ul>
      """
}


import org.jetbrains.grammarkit.tasks.*

def GENERATE_GROUP = 'Generate'

task generateLexer(type: GenerateLexer) {
    source = "src/main/grammar/BrightScript.flex"
    targetDir = "src/main/gen/com/interfaced/brs/lang/lexer"
    targetClass = "_BrsLexer"
    skeleton = "src/main/grammar/idea-flex.skeleton"
    purgeOldFiles = true

    description = 'Generate Lexer Java sources for BrightScript'
    group = GENERATE_GROUP
}

task generateParser(type: GenerateParser) {
    source = "src/main/grammar/BrightScript.bnf"
    targetRoot = 'src/main/gen'
    pathToParser = 'src/main/gen/com/interfaced/brs/lang/BrsParser.java'
    pathToPsiRoot = 'src/main/gen/com/interfaced/brs/lang/psi'
    purgeOldFiles = true

    description = 'Generate Parser Java sources for BrightScript'
    group = GENERATE_GROUP

    // patch up to date check
    outputs.upToDateWhen { false }
}

compileKotlin {
    kotlinOptions.jvmTarget = "17"
}

compileKotlin.dependsOn(generateLexer, generateParser)

When I try to run it have the following output

org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'brs-plugin'. at ... Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'GenerateLexer' for root project 'brs-plugin' of type org.gradle.api.Project.

But when I try to change my buildLexer/buildParser tasks as following

generateLexer {
    source = "src/main/grammar/BrightScript.flex"
    targetDir = "src/main/gen/com/interfaced/brs/lang/lexer"
    targetClass = "_BrsLexer"
    skeleton = "src/main/grammar/idea-flex.skeleton"
    purgeOldFiles = true

    description = 'Generate Lexer Java sources for BrightScript'
    group = GENERATE_GROUP
}

generateParser {
    source = "src/main/grammar/BrightScript.bnf"
    targetRoot = 'src/main/gen'
    pathToParser = 'src/main/gen/com/interfaced/brs/lang/BrsParser.java'
    pathToPsiRoot = 'src/main/gen/com/interfaced/brs/lang/psi'
    purgeOldFiles = true

    description = 'Generate Parser Java sources for BrightScript'
    group = GENERATE_GROUP

    // patch up to date check
    outputs.upToDateWhen { false }
}

have another one problem

A problem occurred evaluating root project 'brs-plugin'. ... Caused by: java.lang.IllegalArgumentException: Cannot set the value of task ':generateLexer' property 'skeleton' of type org.gradle.api.file.RegularFile

How to fix my problem? Regards

0 Answers0