backport: 18.0.0

This commit is contained in:
FalsePattern 2024-10-17 10:24:19 +02:00
parent 9b3e849f96
commit b054009ee0
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
7 changed files with 49 additions and 13 deletions

View file

@ -17,10 +17,17 @@ Changelog structure reference:
## [Unreleased]
## [18.0.0]
### Added
- Zig
- Labeled switch statements
### Changed
- LSP
- Updated to LSP4IJ 0.6.1-20241003-152535
- Updated to LSP4IJ 0.7.0
## [17.3.0]

View file

@ -40,7 +40,7 @@ val clionVersion = properties("clionVersion").get()
val clionPlugins = listOf("com.intellij.clion", "com.intellij.cidr.lang", "com.intellij.cidr.base", "com.intellij.nativeDebug")
val lsp4jVersion = "0.21.1"
val lsp4ijVersion = "0.6.1-20241003-152535"
val lsp4ijVersion = "0.7.0"
val lsp4ijNightly = lsp4ijVersion.contains("-")
val lsp4ijDepString = "${if (lsp4ijNightly) "nightly." else ""}com.jetbrains.plugins:com.redhat.devtools.lsp4ij:$lsp4ijVersion"

View file

@ -11,7 +11,7 @@ baseIDE=clion
ideaVersion=2024.2.2
clionVersion=2024.2.2
pluginVersion=17.3.1-dev001
pluginVersion=18.0.0
# Gradle Releases -> https://github.com/gradle/gradle/releases
gradleVersion=8.10.2

View file

@ -74,7 +74,7 @@ public class ZigModuleBuilder extends ModuleBuilder {
@Override
public JComponent getComponent() {
return withBorderIfNeeded(peer.getComponent());
return withBorderIfNeeded(peer.createComponent());
}
@Override

View file

@ -64,7 +64,7 @@ public class ZigNewProjectWizard implements LanguageGeneratorNewProjectWizard {
@Override
public void setupUI(@NotNull Panel builder) {
builder.row((JLabel) null, (r) -> {
r.cell(peer.getComponent())
r.cell(peer.createComponent())
.align(AlignX.FILL);
return null;
});

View file

@ -16,29 +16,59 @@
package com.falsepattern.zigbrains.project.ide.newproject;
import com.intellij.ide.util.projectWizard.SettingsStep;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.ui.ValidationInfo;
import com.intellij.openapi.util.Disposer;
import com.intellij.platform.GeneratorPeerImpl;
import com.intellij.platform.ProjectGeneratorPeer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.JComponent;
import static com.falsepattern.zigbrains.common.util.dsl.JavaPanel.newPanel;
public class ZigProjectGeneratorPeer extends GeneratorPeerImpl<ZigProjectConfigurationData> {
public class ZigProjectGeneratorPeer implements ProjectGeneratorPeer<ZigProjectConfigurationData> {
private final ZigNewProjectPanel newProjectPanel;
private volatile JComponent myComponent;
public ZigProjectGeneratorPeer(boolean handleGit) {
newProjectPanel = new ZigNewProjectPanel(handleGit);
}
@Override
public @NotNull JComponent getComponent() {
return createComponent();
}
@Override
public void buildUI(@NotNull SettingsStep settingsStep) {
}
@Override
public @NotNull ZigProjectConfigurationData getSettings() {
return newProjectPanel.getData();
}
@Override
public @NotNull JComponent getComponent() {
return newPanel(newProjectPanel::attachPanelTo);
public @Nullable ValidationInfo validate() {
return null;
}
@Override
public boolean isBackgroundJobRunning() {
return false;
}
public @NotNull JComponent createComponent() {
if (myComponent == null) {
synchronized (this) {
if (myComponent == null) {
return myComponent = newPanel(newProjectPanel::attachPanelTo);
}
}
}
return myComponent;
}
public void dispose() {

View file

@ -197,7 +197,6 @@ Statement
| KEYWORD_ERRDEFER Payload? BlockExprStatement
| IfStatement
| LabeledStatement
| SwitchExpr
| VarDeclExprStatement
ComptimeStatement
@ -211,7 +210,7 @@ private ZB_IfStatement_Body
::= BlockExpr ( KEYWORD_ELSE Payload? Statement )?
| AssignExpr ( SEMICOLON | KEYWORD_ELSE Payload? Statement )
LabeledStatement ::= BlockLabel? (Block | LoopStatement)
LabeledStatement ::= BlockLabel? (Block | LoopStatement | SwitchExpr)
LoopStatement ::= KEYWORD_INLINE? (ForStatement | WhileStatement)
@ -273,7 +272,7 @@ PrimaryExpr
| KEYWORD_BREAK BreakLabel? Expr?
| KEYWORD_COMPTIME Expr
| KEYWORD_NOSUSPEND Expr
| KEYWORD_CONTINUE BreakLabel?
| KEYWORD_CONTINUE BreakLabel? Expr?
| KEYWORD_RESUME Expr
| KEYWORD_RETURN Expr?
| BlockLabel? LoopExpr
@ -336,7 +335,6 @@ PrimaryTypeExpr
| KEYWORD_ANYFRAME
| KEYWORD_UNREACHABLE
| StringLiteral
| SwitchExpr
ContainerDecl ::= (KEYWORD_EXTERN | KEYWORD_PACKED)? ContainerDeclAuto
@ -349,6 +347,7 @@ IfTypeExpr ::= IfPrefix TypeExpr (KEYWORD_ELSE Payload? TypeExpr)?
LabeledTypeExpr
::= BlockLabel Block
| BlockLabel? LoopTypeExpr
| BlockLabel? SwitchExpr
LoopTypeExpr ::= KEYWORD_INLINE? (ForTypeExpr | WhileTypeExpr)