IntelliJ-based IDEs Protobuf Language Plugin that provides Protobuf language support.

Overview

LogoIntelliJ Protobuf Language Plugin

JetBrains Plugins JetBrains plugins

Reference

Inspired by protobuf-jetbrains-plugin and intellij-protobuf-editor.

Descriptor

IntelliJ-based IDEs Protobuf Language Plugin that provides Protobuf language support.

Analyzing features:

  • Syntax highlighting
  • Symbol and References
  • Import file from library and SDK
  • Navigation
  • Find Usage
  • Code folding
  • Semantic analysis
  • Struct Viewer
  • Quick documentation
  • PSI stub

Editor features:

  • Auto Completion
  • Code format
  • Import optimizing
  • AIP spec support
  • Auto import
  • Import quick fix

Planned features:

  • Java/Kotlin code navigation
  • Sisyphus framework integration

Screenshots

screenshot

Highlight Features

  1. Import optimizer
    import

  2. Reference
    reference

  3. In-place rename
    rename

  4. Auto completion
    import

  5. Auto import
    auto import

  6. AIP Spec resource

More features wait for your discovering...

Comments
  • Plugin is not compatible with GoLand 2022.2 EAP

    Plugin is not compatible with GoLand 2022.2 EAP

    Hi,

    great plugin and thx for the work, but i would like to report that the plugin not works for the mentioned version. Its the own plugin that not works atm. May you could release a version?

    regars

    question 
    opened by Atomzwieback 18
  • multiple choices

    multiple choices

    The plugin detects incorrect multiple choices for example app has the next structure

    app
    -plugin_a
    --protobuf
    ---features_dto.proto
    ---exampe.proto {
      syntax = "proto3";
      package com.app.plugin_a;
      import "protobuf/features_dto.proto";
      message Test {
        FeatureDto feature = 1; // <- multiple choices error
      }
    }
    ---*other*.proto
    ---*other*.proto
    -plugin_b
    --protobuf
    ---features_dto.proto
    ---exampe.proto {
      syntax = "proto3";
      package com.app.plugin_b;
      import "protobuf/features_dto.proto";
      message Test {
        FeatureDto feature = 1; // <- multiple choices error
      }
    }
    ---*other*.proto
    ---*other*.proto
    

    then when I, in each plugin, in some other protobuf/*.proto try to import "protobuf/features_dto.proto" i have the error multiple choices and marked red messages and/or enums from protobuf/features_dto.proto i try to select one of the multiple choices options, but i still see the error. i think this behavior is incorrect, because the different directories.

    question 
    opened by EvGeniyLell 12
  • java.lang.IllegalArgumentException: fromIndex(7) > toIndex(6)

    java.lang.IllegalArgumentException: fromIndex(7) > toIndex(6)

    plugin version: 1.6.21-EAP GoLang: 2022.2 (Build #GO-222.3345.118)

    java.lang.IllegalArgumentException: fromIndex(7) > toIndex(6)
    	at java.base/java.util.AbstractList.subListRangeCheck(AbstractList.java:509)
    	at java.base/java.util.ArrayList.subList(ArrayList.java:1108)
    	at com.intellij.psi.util.QualifiedName.subQualifiedName(QualifiedName.java:194)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler.findGroup(ProtobufDecompiler.kt:280)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler.access$findGroup(ProtobufDecompiler.kt:9)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler$generate$4.invoke(ProtobufDecompiler.kt:140)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler$generate$4.invoke(ProtobufDecompiler.kt:130)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler.stackWrapper(ProtobufDecompiler.kt:292)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler.generate(ProtobufDecompiler.kt:130)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler$generate$7$1.invoke(ProtobufDecompiler.kt:193)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler$generate$7$1.invoke(ProtobufDecompiler.kt:191)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufCodeBuilder.block(ProtobufCodeBuilder.kt:63)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler.generate(ProtobufDecompiler.kt:191)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler$decompile$1.invoke(ProtobufDecompiler.kt:57)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler$decompile$1.invoke(ProtobufDecompiler.kt:11)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufCodeBuilderKt.buildProtobuf(ProtobufCodeBuilder.kt:81)
    	at io.kanro.idea.plugin.protobuf.decompile.ProtobufDecompiler.decompile(ProtobufDecompiler.kt:11)
    	at io.kanro.idea.plugin.protobuf.decompile.DecompiledFileManager.findFile(DecompiledFileManager.kt:106)
    	at io.kanro.idea.plugin.protobuf.golang.ExtensionKt.decompile(Extension.kt:17)
    	at io.kanro.idea.plugin.protobuf.golang.GoDecompileService$runActivity$1$1.run(GoDecompileService.kt:35)
    	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:915)
    	at io.kanro.idea.plugin.protobuf.golang.GoDecompileService$runActivity$$inlined$runBackgroundableTask$1.run(progress.kt:38)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:442)
    	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$5(CoreProgressManager.java:493)
    	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
    	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
    	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
    	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
    	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
    	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
    	at java.base/java.lang.Thread.run(Thread.java:833)
    
    bug 
    opened by BorzdeG 11
  • import statements show not found

    import statements show not found

    Environment:

    GoLand 2021.1
    Build #GO-211.6693.119, built on April 6, 2021
    Runtime version: 11.0.10+9-b1341.35 amd64
    VM: Dynamic Code Evolution 64-Bit Server VM by JetBrains s.r.o.
    Windows 10 10.0
    GC: ParNew, ConcurrentMarkSweep
    Memory: 1966M
    Cores: 32
    Registry: ide.completion.variant.limit=500, documentation.show.toolbar=true, debugger.watches.in.variables=false, suggest.all.run.configurations.from.context=true, ide.balloon.shadow.size=0, go.run.processes.with.pty=false, eslint.additional.file.extensions=svelte
    Non-Bundled Plugins: Rider UI Theme Pack (0.8), coderpillr.theme (1.0.0-rc.3), com.alicannklc.tailwind (1.4.6), com.bum.intellij.tailwindcss (1.1.4), com.github.ushiosan23.darktheme (1.0.2), com.intellij.ideolog (203.0.27.0), com.intellij.plugins.vscodekeymap (211.4961.30), com.jetbrains.darkPurpleTheme (1.2), org.jetbrains.plugins.less (211.6693.76), com.mfwebstudio.atomonedark.plugin.id (1.0.3), com.vecheslav.darculaDarkerTheme (1.2.0), com.xinkun.theme.md (1.7.12), github.cweijan.test-theme (1.6), io.kanro.idea.plugin.protobuf (0.0.3), net.antelle.intellij-xcode-dark-theme (1.2.2), PythonCore (211.6693.119)
    

    As an example, create 2 files:

    util.proto:

    syntax = "proto3";
    package test;
    
    option go_package = "test/grpc/pb";
    
    message Sort {
        string field = 1;
        int64 order = 2; // 1 standing for asc, -1 for desc
    }
    
    message OffsetLimit {
        int64 offset = 1;
        int64 limit = 2;
    }
    

    and another one that uses it:

    test.proto:

    syntax = "proto3";
    package test;
    
    import "google/protobuf/timestamp.proto";
    import "util.proto";
    
    option go_package = "test/grpc/pb";
    
    service Updater {
        rpc Update (UpdateRequest) returns (UpdateRequestReply);
    }
    
    message UpdateRequest {
        repeated Sort order_field = 1;
    }
    
    message UpdateRequestReply {
        string error                           = 1;
        google.protobuf.Timestamp last_updated = 2;
    }
    

    Monitor that the editor has no idea what Sort is coming from.

    Regarding google.protobuf.Timestamp, as it is a global to proto, I have no idea how the plugin is supposed to find location of definitions.

    enhancement good first issue 
    opened by zzwx 10
  • Syntax: option values with arrays are not supported

    Syntax: option values with arrays are not supported

    It looks like option values that are arrays are not supported, and are displayed as invalid syntax. This often breaks the entire file and also auto-formatting doesn't work.

    Example from the internet:

    message MyMeta {
        int32 id = 1 [(com.util.meta) = {
            needValidation: false,
            fileMap: [
                {
                    key: "t",
                    value: "raw_orders"
                }
            ];
        }];
    }
    

    This should be a valid protobuf option, however this how it looks actually: Screen Shot 2021-07-04 at 10 22 29

    enhancement question 
    opened by nomaed 9
  • Formatter adds additional lines between package and option

    Formatter adds additional lines between package and option

    Example:

    syntax = "proto3";
    package test;
    
    option go_package = "test/grpc/pb";
    

    Hit Ctrl-Alt-L, watch 2 empty lines added above option.

    bug 
    opened by zzwx 9
  • Detect buf.build's buf.yaml for auto configuration of proto roots

    Detect buf.build's buf.yaml for auto configuration of proto roots

    When using buf.build to build protobufs a file called buf.yaml will exist at the root of the proto directory.

    Detecting this file to automatically use these directories as proto roots would be super handy. An option could be added to disable this behaviour if some people found it undesirable for whatever reason.

    enhancement 
    opened by nvx 7
  • clion encounter a exception

    clion encounter a exception

    when I use clion with this plugin encounter exception as follow: may be a bug ?

    java.lang.NumberFormatException: For input string: "0x0312104E" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.base/java.lang.Long.parseLong(Long.java:692) at java.base/java.lang.Long.parseLong(Long.java:817) at io.kanro.idea.plugin.protobuf.lang.psi.primitive.structure.ProtobufNumbered.number(ProtobufNumbered.kt:9) at io.kanro.idea.plugin.protobuf.lang.psi.primitive.element.ProtobufEnumValueDefinition.tailText(ProtobufEnumValueDefinition.kt:20) at io.kanro.idea.plugin.protobuf.lang.psi.primitive.structure.ProtobufScopeItem.getPresentableText(ProtobufScopeItem.kt:41) at com.intellij.ide.actions.SearchEverywherePsiRenderer.lambda$getElementText$1(SearchEverywherePsiRenderer.java:87) at java.base/java.util.Optional.map(Optional.java:265) at com.intellij.ide.actions.SearchEverywherePsiRenderer.getElementText(SearchEverywherePsiRenderer.java:87) at com.intellij.ide.util.PsiElementListCellRenderer$LeftRenderer.customizeCellRenderer(PsiElementListCellRenderer.java:135) at com.intellij.ui.ColoredListCellRenderer.getListCellRendererComponent(ColoredListCellRenderer.java:47) at com.intellij.ide.util.PsiElementListCellRenderer.lambda$getListCellRendererComponent$1(PsiElementListCellRenderer.java:231) at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:64) at com.intellij.ide.util.PsiElementListCellRenderer.getListCellRendererComponent(PsiElementListCellRenderer.java:230) at com.intellij.ide.actions.searcheverywhere.MixedListFactory$1.lambda$getListCellRendererComponent$0(MixedListFactory.java:79) at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:64) at com.intellij.ide.actions.searcheverywhere.MixedListFactory$1.getListCellRendererComponent(MixedListFactory.java:78) at com.intellij.ui.ExpandedItemListCellRendererWrapper.getListCellRendererComponent(ExpandedItemListCellRendererWrapper.java:24) at com.intellij.ui.components.WideSelectionListUI.updateLayoutState(WideSelectionListUI.java:197) at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1389) at java.desktop/javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(BasicListUI.java:2785) at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:219) at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:199) at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:246) at java.desktop/javax.swing.DefaultListSelectionModel.insertIndexInterval(DefaultListSelectionModel.java:670) at java.desktop/javax.swing.plaf.basic.BasicListUI$Handler.intervalAdded(BasicListUI.java:2743) at java.desktop/javax.swing.AbstractListModel.fireIntervalAdded(AbstractListModel.java:153) at com.intellij.ide.actions.searcheverywhere.MixedSearchListModel.addElements(MixedSearchListModel.java:50) at com.intellij.ide.actions.searcheverywhere.SearchEverywhereUI$SearchListener.elementsAdded(SearchEverywhereUI.java:1093) at com.intellij.ide.actions.searcheverywhere.ThrottlingListenerWrapper.lambda$new$0(ThrottlingListenerWrapper.java:38) at com.intellij.ide.actions.searcheverywhere.ThrottlingListenerWrapper.lambda$new$2(ThrottlingListenerWrapper.java:38) at com.intellij.ide.actions.searcheverywhere.ThrottlingListenerWrapper$Buffer.flush(ThrottlingListenerWrapper.java:131) at com.intellij.ide.actions.searcheverywhere.ThrottlingListenerWrapper.searchFinished(ThrottlingListenerWrapper.java:69) at com.intellij.ide.actions.searcheverywhere.MixedResultsSearcher$ResultsAccumulator.lambda$searchFinished$6(MixedResultsSearcher.java:332) at com.intellij.ide.actions.searcheverywhere.MixedResultsSearcher$ResultsAccumulator.lambda$runInNotificationExecutor$8(MixedResultsSearcher.java:368) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:218) at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:200) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:319) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46) at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:969) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:449) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:808) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:496) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

    bug 
    opened by gcc-tan 7
  • Add support for envoyproxy/protoc-gen-validate

    Add support for envoyproxy/protoc-gen-validate

    Thank you for writing this plugin, its mostly works except its throws error while using rules for envoyproxy/protoc-gen-validate

    https://puu.sh/I3FGh/d1e225ec2d.png

    thanks

    enhancement 
    opened by k1ng440 5
  • plugin says it's incompatible with current version of CLion, but version is OK according to plugin's requirements

    plugin says it's incompatible with current version of CLion, but version is OK according to plugin's requirements

    image1 CL-212.4746.93, JRE 11.0.11+9-b1504.13x64 JetBrains s.r.o., OS Mac OS X(aarch64) v11.4, screens 2880.0x1800.0; Retina

    I've created an issue on youtrack (https://youtrack.jetbrains.com/issue/CPP-26003). They say it's on your side.

    question 
    opened by senatus 5
  • gradle build fail

    gradle build fail

    想加一个命名风格的配置,但是构建失败了~下载了 gradle-intellij-plugin 执行了publishToMavenLocal 成功了,但是 intellij-protobuf-plugin 还是构建失败,是少了什么 kotlin 的配置吗(本人java开发)

    A problem occurred configuring root project 'idea-protobuf-plugin'.

    Could not resolve all files for configuration ':classpath'. Could not resolve org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0. Required by: project : > org.jetbrains.intellij:org.jetbrains.intellij.gradle.plugin:1.4.0 > No matching variant of org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.4' but: - Variant 'apiElements' capability org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 11 and the consumer needed a runtime of a component compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.4') - Variant 'runtimeElements' capability org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.4')

    • Try:

    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    question 
    opened by lin-mt 4
  • ⬆️ Bump org.jetbrains.kotlin.jvm from 1.7.21 to 1.8.0

    ⬆️ Bump org.jetbrains.kotlin.jvm from 1.7.21 to 1.8.0

    Bumps org.jetbrains.kotlin.jvm from 1.7.21 to 1.8.0.

    Release notes

    Sourced from org.jetbrains.kotlin.jvm's releases.

    Kotlin 1.8.0

    Changelog

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend

    ... (truncated)

    Changelog

    Sourced from org.jetbrains.kotlin.jvm's changelog.

    1.8.0

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend
    • KT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backend

    ... (truncated)

    Commits
    • da1a843 Add ChangeLog for 1.8.0-RC2
    • d325cf8 Call additional publishToMavenLocal in maven build scripts and enable info
    • 0403d70 Don't leave Gradle daemons after build scripts
    • 52b225d Fix task module-name is not propagated to compiler arguments
    • d40ebc3 Specify versions-maven-plugin version explicitly
    • 2e829ed Fix version parsing crash on Gradle rich version string
    • f603c0e Scripting, IR: fix capturing of implicit receiver
    • 06cbf8f Scripting, tests: enable custom script tests with IR
    • d61cef0 Fix deserialization exception for DNN types from Java
    • ea33e72 JVM IR: script is a valid container for local delegated properties
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • buf 配置逻辑问题

    buf 配置逻辑问题

    • 设置里 保存 buf 配置会存储到 .idea/protobuf.xml
    • 当使用buf 时读取的配置是 .idea/workspace.xml

    我当前的配置

    image

    .idea/protobuf.xml 配置

    image

    .idea/workspace.xml 配置

    image

    实际运行 buf 错误提示

    image

    IDE info

    GoLand 2022.3 Build #GO-223.7571.176, built on November 29, 2022 Licensed to caroline helwe Subscription is active until September 1, 2023. For educational use only. Runtime version: 17.0.5+1-b653.14 aarch64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 13.1 GC: G1 Young Generation, G1 Old Generation Memory: 8192M Cores: 10 Metal Rendering is ON Registry: suggest.all.run.configurations.from.context=true debugger.new.tool.window.layout=true ide.completion.variant.limit=500 ide.experimental.ui=true

    Non-Bundled Plugins: com.markskelton.one-dark-theme (5.7.2) com.github.copilot (1.1.37.2188) String Manipulation (9.6.1) commit-message-helper-idea-plugin (1.1.0) com.mallowigi (80.0.0) izhangzhihao.rainbow.brackets (2022.3.5) com.ypwang.plugin.go-linter (1.6.3) io.kanro.idea.plugin.protobuf (1.6.30)

    opened by ercJuL 3
  • Incorrect prefix suggestion for enums

    Incorrect prefix suggestion for enums

    "Value name of root enum should be start with enum name"

    https://google.aip.dev/126

    All enum values must use UPPER_SNAKE_CASE. The first value of the enum should be the name of the enum itself followed by the suffix _UNSPECIFIED. An exception to this rule is if there is a clearly useful zero value. In particular, if an enum needs to present an UNKNOWN, it is usually clearer and more useful for it to be a zero value rather than having both. The other values should not be prefixed by the name of the enum itself. This generally requires users to write MyState.MYSTATE_ACTIVE in their code, which is unnecessarily verbose.

    question 
    opened by clehene 4
  • Allowed fold region

    Allowed fold region

    IDEA support common region fold https://www.jetbrains.com/help/idea/code-folding-settings.html

    This plugin should support fold

    //region xyz
    message Xyz {}
    //endregion
    
    enhancement 
    opened by wenerme 0
  • 快捷生成 message

    快捷生成 message

    在编写 rpc 的时候,request message 和 response message 还未定义,会报错,是否可以支持,鼠标移动到未定义的地方按下快捷键 option + enter 可选生成 message:

    image

    如果可以的话,在鼠标移动到末尾的时候,按下快捷键 option + enter 可以自动生成两个未定义的 message:

    image

    enhancement PR welcome 
    opened by lin-mt 0
  • Allow inspections to be disabled

    Allow inspections to be disabled

    It would be nice to allow inspections to be disabled in the Settings GUI. For example, "Message name should be PascalCase." While I may agree with the inspections, I'm not always the owner of that code, or it's not easy to make the change.

    enhancement PR welcome 
    opened by MitchAman 4
Releases(v1.6.30)
Owner
Kanro
Kanro
Plugin for IntelliJ-based IDEs folding root files in the ProjectView

Foldable ProjectView The Foldable ProjectView is a plugin for the IntelliJ-based IDEs that lets you fold files located in the root of your project. Av

Jakub Chrzanowski 47 Dec 13, 2022
Review crates with cargo-crev in IntelliJ IDEs

IntelliJ Crev Cargo crates review support using cargo-crev Installation Using IDE built-in plugin system: Settings/Preferences > Plugins > Marketplace

Aleksei Trifonov 4 Dec 31, 2021
IntelliJ Idea Astor Plugin is a plugin that integrates Astor in Intellij Idea

IntelliJ Idea Astor Plugin IntelliJ Idea Astor Plugin is a plugin that integrates Astor in Intellij Idea. It communicates with a local/remote program

null 4 Aug 28, 2021
Intellij-platform-plugin-template - IntelliJ Platform Plugin Template

IntelliJ Platform Plugin Template TL;DR: Click the Use this template button and

null 0 Jan 1, 2022
IntelliJ plugin that provides some useful utilities to support the daily work with Gradle.

IntelliJ Gradle Utilities Plugin This IntelliJ plugin provides some useful utilities to support the daily work with Gradle. It's available on the offi

Marcel Kliemannel 6 Jul 29, 2022
IntelliJ language plugin for the Kipper programming language 🦊

Kipper IntelliJ Plugin The language plugin for the Kipper programming language, which provides language support for the JetBrains IntelliJ platform. T

Luna 1 Jun 17, 2022
Kirill Rakhman 4 Sep 15, 2022
gradle-android-scala-plugin adds scala language support to official gradle android plugin

gradle-android-scala-plugin gradle-android-scala-plugin adds scala language support to official gradle android plugin. See also sample projects at htt

saturday06 345 Dec 10, 2022
IntelliJ plugin that provides a modern and powerful byte code analyzer tool window.

IntelliJ Byte Code Analyzer Plugin This IntelliJ plugin provides a modern and powerful byte code analyzer tool window. Its supports Java, Kotlin, Groo

Marcel Kliemannel 29 Nov 9, 2022
✈️ IDE plugin for the IntelliJ platform which adds GitHub Copilot support. (VERY WIP)

JetBrains Copilot GitHub Copilot support for the IntellIJ Platform. Installation Download the latest release. Select the Install Plugin from Disk opti

Koding 155 Dec 10, 2022
A plugin that adds support for rs2asm files to IntelliJ.

Rs2Asm This plugin adds some simple features when interacting with rs2asm files. Features Syntax highlighting Autocompletion for label names and instr

Joshua Filby 3 Dec 16, 2021
The soon-to-be-official plugin of V language for IntelliJ

intellij-vlang Template ToDo list Create a new IntelliJ Platform Plugin Template project. Get familiar with the template documentation. Verify the plu

Ned 11 Dec 29, 2022
Add Mac tabbing options to Jetbrains IDEs

IDEA Mac Tabbing Add Mac tabbing options to Jetbrains IDEs: Show Previous Window Tab Show Next Window Tab Move Window Tab to New Window Merge All Wind

DCat 29 Sep 4, 2022
Dark theme for JetBrains IDEs :]

?? Hoshi Theme Dark theme for JetBrains IDEs. :] Screenshots Installation Using IDE built-in plugin system: Settings/Preferences > Plugins > Marketpla

luciano ratamero 3 Jun 23, 2022
eventbus-intellij-plugin 3.8 0.0 L1 Java Plugin to navigate between events posted by EventBus.

eventbus-intellij-plugin Plugin to navigate between events posted by EventBus. Post to onEvent and onEvent to Post Install There are two ways. Prefere

Shinnosuke Kugimiya 315 Aug 8, 2022
A Gradle plugin to support the Groovy language for building Android apps

Groovy language support for Android Deprecated: This plugin has been deprecated in favor of Kotlin which has the full support of JetBrains and Google.

Groovy programming language 853 Dec 21, 2022
A Candid language plugin that provide a complete support to efficiently edit .did files.

IntelliJ Candid Language Plugin A Candid language plugin that provide a complete support to efficiently edit .did files. Candid is an interface descri

Maxime Bonvin 9 Dec 3, 2022
IntelliJ Plugin for Android Parcelable boilerplate code generation.

IntelliJ/Android Studio Plugin for Android Parcelable boilerplate code generation This tool generates an Android Parcelable implementation based on fi

Michał Charmas 2.1k Dec 27, 2022
A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development.

ADB Idea A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development. The following commands are provided: Uninst

Philippe Breault 2k Dec 28, 2022