backport: 20.3.0

This commit is contained in:
FalsePattern 2025-01-30 13:25:32 +01:00
parent d222e527ba
commit 13996193ac
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
13 changed files with 68 additions and 39 deletions

View file

@ -17,6 +17,11 @@ Changelog structure reference:
## [Unreleased]
## [20.3.0]
- Zig
- Improved default colors
## [20.2.2]
### Fixed

View file

@ -213,7 +213,7 @@ abstract class DAPDriver<Server : IDebugProtocolServer, Client : IDebugProtocolC
val cli = installer.install()
val args = HashMap<String, Any>()
args["program"] = Util.toWinPath(cli.exePath)
args["cmd"] = cli.workDirectory.toString()
args["cmd"] = cli.workingDirectory.toString()
args["name"] = "CPP Debug"
args["type"] = "cppvsdbg"
args["request"] = "launch"
@ -953,7 +953,7 @@ abstract class DAPDriver<Server : IDebugProtocolServer, Client : IDebugProtocolC
fun runInTerminalAsync(args: RunInTerminalRequestArguments): RunInTerminalResponse {
val cli = PtyCommandLine(args.args.toList())
cli.charset = Charsets.UTF_8
cli.withCharset(Charsets.UTF_8)
val cwd = args.cwd?.ifBlank { null }?.toNioPathOrNull()
if (cwd != null) {
cli.withWorkingDirectory(cwd)

View file

@ -230,7 +230,7 @@ class ZigDebuggerToolchainService {
val binaryToDownload = binariesToDownload.first { it.url == downloadUrl }
val propertyName = binaryToDownload.propertyName
val archiveFile = result.first
Unarchiver.unarchive(archiveFile, downloadDir, binaryToDownload.prefix)
Unarchiver.unarchive(archiveFile.toPath(), baseDir, binaryToDownload.prefix)
archiveFile.delete()
versions[propertyName] = binaryToDownload.version
}
@ -333,23 +333,23 @@ class ZigDebuggerToolchainService {
private enum class Unarchiver {
ZIP {
override val extension = "zip"
override fun createDecompressor(file: File) = Decompressor.Zip(file)
override fun createDecompressor(file: Path) = Decompressor.Zip(file)
},
TAR {
override val extension = "tar.gz"
override fun createDecompressor(file: File) = Decompressor.Tar(file)
override fun createDecompressor(file: Path) = Decompressor.Tar(file)
},
VSIX {
override val extension = "vsix"
override fun createDecompressor(file: File) = Decompressor.Zip(file)
override fun createDecompressor(file: Path) = Decompressor.Zip(file)
};
protected abstract val extension: String
protected abstract fun createDecompressor(file: File): Decompressor
protected abstract fun createDecompressor(file: Path): Decompressor
companion object {
@Throws(IOException::class)
suspend fun unarchive(archivePath: File, dst: File, prefix: String? = null) {
suspend fun unarchive(archivePath: Path, dst: Path, prefix: String? = null) {
runInterruptible {
val unarchiver = entries.find { archivePath.name.endsWith(it.extension) } ?: error("Unexpected archive type: $archivePath")
val dec = unarchiver.createDecompressor(archivePath)

View file

@ -40,7 +40,7 @@ abstract class MSVCDriverConfiguration: DAPDebuggerDriverConfiguration() {
override fun createDriverCommandLine(driver: DebuggerDriver, arch: ArchitectureType): GeneralCommandLine {
val path = debuggerExecutable
val cli = GeneralCommandLine()
cli.exePath = path.pathString
cli.withExePath(path.pathString)
cli.addParameters("--interpreter=vscode", "--extconfigdir=%USERPROFILE%\\.cppvsdbg\\extensions")
cli.withWorkingDirectory(path.parent)
return cli

View file

@ -20,8 +20,6 @@
* along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
*/
@file:Suppress("HardCodedStringLiteral")
package com.falsepattern.zigbrains.lsp.config
import kotlinx.serialization.SerialName

View file

@ -65,9 +65,9 @@ abstract class ZigProfileState<T: ZigExecConfig<T>> (
// TODO remove this check once JetBrains implements colored terminal in the debugger
// https://youtrack.jetbrains.com/issue/CPP-11622/ANSI-color-codes-not-honored-in-Debug-Run-Configuration-output-window
val cli = if (configuration.emulateTerminal() && !debug) PtyCommandLine().withConsoleMode(true).withParentEnvironmentType(GeneralCommandLine.ParentEnvironmentType.CONSOLE) else GeneralCommandLine()
cli.exePath = zigExePath.pathString
cli.withExePath(zigExePath.pathString)
workingDir.path?.let { cli.withWorkingDirectory(it) }
cli.charset = Charsets.UTF_8
cli.withCharset(Charsets.UTF_8)
cli.addParameters(configuration.buildCommandLineArgs(debug))
return configuration.patchCommandLine(cli)
}

View file

@ -62,7 +62,7 @@ abstract class ZigTool(val toolchain: AbstractZigToolchain) {
): GeneralCommandLine {
val cli = GeneralCommandLine()
.withExePath(toolchain.pathToExecutable(toolName).toString())
.withWorkDirectory(workingDirectory?.toString())
.withWorkingDirectory(workingDirectory)
.withParameters(*parameters)
.withCharset(Charsets.UTF_8)
return toolchain.patchCommandLine(cli)

View file

@ -93,7 +93,6 @@ class ZigColorSettingsPage: ColorSettingsPage {
ADD_HIGHLIGHT
}
@Suppress("HardCodedStringLiteral")
private val ADD_HIGHLIGHT = HashMap<String, TextAttributesKey>().apply {
this["enum"] = ZigSyntaxHighlighter.ENUM_REF
this["enum_decl"] = ZigSyntaxHighlighter.ENUM_DECL

View file

@ -45,15 +45,24 @@ class ZigSyntaxHighlighter: SyntaxHighlighterBase() {
// @formatter:off
val BAD_CHAR = createKey("BAD_CHARACTER" , HighlighterColors.BAD_CHARACTER )
val BUILTIN = createKey("BUILTIN" , DefaultLanguageHighlighterColors.STATIC_METHOD )
val CHAR = createKey("CHAR" , DefaultLanguageHighlighterColors.NUMBER )
val NUMBER = createKey("NUMBER" , DefaultLanguageHighlighterColors.NUMBER )
val CHAR = createKey("CHAR" , NUMBER )
val TYPE_DECL = createKey("TYPE_DECL" , DefaultLanguageHighlighterColors.CLASS_NAME )
val TYPE_DECL_GEN = createKey("TYPE_DECL_GEN" , TYPE_DECL )
val TYPE_REF = createKey("TYPE" , DefaultLanguageHighlighterColors.CLASS_REFERENCE )
val TYPE_REF_GEN = createKey("TYPE_GEN" , TYPE_REF )
val TYPE_PARAM_DECL = createKey("TYPE_PARAM_DECL" , TYPE_REF )
val TYPE_PARAM = createKey("TYPE_PARAM" , TYPE_PARAM_DECL )
val STRUCT_DECL = createKey("STRUCT_DECL" , TYPE_DECL )
val STRUCT_REF = createKey("STRUCT" , TYPE_REF )
val COMMENT = createKey("COMMENT" , DefaultLanguageHighlighterColors.LINE_COMMENT )
val COMMENT_DOC = createKey("COMMENT_DOC" , DefaultLanguageHighlighterColors.DOC_COMMENT )
val ENUM_DECL = createKey("ENUM_DECL" , DefaultLanguageHighlighterColors.CLASS_NAME )
val ENUM_REF = createKey("ENUM" , DefaultLanguageHighlighterColors.CLASS_REFERENCE )
val ENUM_MEMBER_DECL = createKey("ENUM_MEMBER_DECL" , DefaultLanguageHighlighterColors.STATIC_FIELD )
val ENUM_DECL = createKey("ENUM_DECL" , STRUCT_DECL )
val ENUM_REF = createKey("ENUM" , STRUCT_REF )
val ENUM_MEMBER_DECL = createKey("ENUM_MEMBER_DECL" , DefaultLanguageHighlighterColors.CONSTANT )
val ENUM_MEMBER_REF = createKey("ENUM_MEMBER" , ENUM_MEMBER_DECL )
val ERROR_TAG_DECL = createKey("ERROR_TAG_DECL" , DefaultLanguageHighlighterColors.STATIC_FIELD )
val ERROR_TAG_REF = createKey("ERROR_TAG" , ERROR_TAG_DECL )
val ERROR_TAG_DECL = createKey("ERROR_TAG_DECL" , ENUM_MEMBER_DECL )
val ERROR_TAG_REF = createKey("ERROR_TAG" , ENUM_MEMBER_REF )
val PROPERTY_DECL = createKey("PROPERTY_DECL" , DefaultLanguageHighlighterColors.INSTANCE_FIELD )
val PROPERTY_REF = createKey("PROPERTY" , PROPERTY_DECL )
val FUNCTION_DECL = createKey("FUNCTION_DECL" , DefaultLanguageHighlighterColors.FUNCTION_DECLARATION )
@ -67,27 +76,18 @@ class ZigSyntaxHighlighter: SyntaxHighlighterBase() {
val METHOD_DECL_GEN = createKey("METHOD_DECL_GEN" , METHOD_DECL )
val METHOD_REF = createKey("METHOD" , FUNCTION_REF )
val METHOD_REF_GEN = createKey("METHOD_GEN" , METHOD_REF )
val NAMESPACE_DECL = createKey("NAMESPACE_DECL" , DefaultLanguageHighlighterColors.CLASS_NAME )
val NAMESPACE_REF = createKey("NAMESPACE" , DefaultLanguageHighlighterColors.CLASS_REFERENCE )
val NUMBER = createKey("NUMBER" , DefaultLanguageHighlighterColors.NUMBER )
val OPERATOR = createKey("OPERATOR" , DefaultLanguageHighlighterColors.OPERATION_SIGN )
val PARAMETER = createKey("PARAMETER" , DefaultLanguageHighlighterColors.PARAMETER )
val STRING = createKey("STRING" , DefaultLanguageHighlighterColors.STRING )
val STRING_ESC_V = createKey("STRING_ESC_V" , DefaultLanguageHighlighterColors.VALID_STRING_ESCAPE )
val STRING_ESC_I_C = createKey("STRING_ESC_I_C" , DefaultLanguageHighlighterColors.INVALID_STRING_ESCAPE )
val STRING_ESC_I_U = createKey("STRING_ESC_I_U" , DefaultLanguageHighlighterColors.INVALID_STRING_ESCAPE )
val STRUCT_DECL = createKey("STRUCT_DECL" , DefaultLanguageHighlighterColors.CLASS_NAME )
val STRUCT_REF = createKey("STRUCT" , DefaultLanguageHighlighterColors.CLASS_REFERENCE )
val TYPE_DECL = createKey("TYPE_DECL" , DefaultLanguageHighlighterColors.CLASS_NAME )
val TYPE_DECL_GEN = createKey("TYPE_DECL_GEN" , TYPE_DECL )
val TYPE_REF = createKey("TYPE" , DefaultLanguageHighlighterColors.CLASS_REFERENCE )
val TYPE_REF_GEN = createKey("TYPE_GEN" , TYPE_REF )
val TYPE_PARAM = createKey("TYPE_PARAM" , DefaultLanguageHighlighterColors.PARAMETER )
val TYPE_PARAM_DECL = createKey("TYPE_PARAM_DECL" , TYPE_PARAM )
val VARIABLE_DECL = createKey("VARIABLE_DECL" , DefaultLanguageHighlighterColors.LOCAL_VARIABLE )
val VARIABLE_DECL_DEPR= createKey("VARIABLE_DECL_DEPR" , VARIABLE_DECL )
val VARIABLE_REF = createKey("VARIABLE" , VARIABLE_DECL )
val NAMESPACE_DECL = createKey("NAMESPACE_DECL" , STRUCT_DECL )
val NAMESPACE_REF = createKey("NAMESPACE" , STRUCT_REF )
val VARIABLE_REF = createKey("VARIABLE" , DefaultLanguageHighlighterColors.LOCAL_VARIABLE )
val VARIABLE_REF_DEPR = createKey("VARIABLE_REF_DEPL" , VARIABLE_REF )
val VARIABLE_DECL = createKey("VARIABLE_DECL" , VARIABLE_REF )
val VARIABLE_DECL_DEPR= createKey("VARIABLE_DECL_DEPR" , VARIABLE_DECL )
// @formatter:on
private val EMPTY_KEYS = arrayOf<TextAttributesKey>()
@ -102,7 +102,6 @@ class ZigSyntaxHighlighter: SyntaxHighlighterBase() {
*ZigTypes::class.java
.fields
.filter {
@Suppress("HardCodedStringLiteral")
it.name.startsWith("KEYWORD_")
}
.map { it.get(null) as IElementType }

View file

@ -20,8 +20,6 @@
* along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
*/
@file:Suppress("HardCodedStringLiteral")
package com.falsepattern.zigbrains.zig.util
import com.intellij.openapi.util.TextRange

View file

@ -54,6 +54,11 @@
<languageInjectionPerformer
language="Zig"
implementationClass="com.falsepattern.zigbrains.zig.injection.ZigLanguageInjectionPerformer"/>
<!--suppress PluginXmlValidity -->
<additionalTextAttributes
scheme="Darcula"
file="colors/ZigColorsConfiguration.xml"/>
</extensions>
<!-- endregion Zig -->
@ -164,6 +169,7 @@
implementation="com.falsepattern.zigbrains.project.toolchain.stdlib.ZigLibraryRootProvider"
/>
<!--suppress PluginXmlValidity -->
<toolWindow
factoryClass="com.falsepattern.zigbrains.project.steps.ui.BuildToolWindowFactory"
anchor="right"
@ -178,6 +184,7 @@
</extensions>
<extensions defaultExtensionNs="com.falsepattern.zigbrains">
<!--suppress PluginXmlValidity -->
<zlsConfigProvider
implementation="com.falsepattern.zigbrains.project.toolchain.ToolchainZLSConfigProvider"
/>

View file

@ -0,0 +1,23 @@
<?xml version='1.0'?>
<list>
<option name="ZIG_TYPE">
<value>
<option name="FOREGROUND" value="B5B6E3"/>
</value>
</option>
<option name="ZIG_TYPE_DECL">
<value>
<option name="FOREGROUND" value="B5B6E3"/>
</value>
</option>
<option name="ZIG_VARIABLE">
<value>
<option name="FOREGROUND" value="FBB4B4"/>
</value>
</option>
<option name="ZIG_FUNCTION">
<value>
<option name="FOREGROUND" value="97F1FD"/>
</value>
</option>
</list>

View file

@ -1,7 +1,7 @@
pluginName=ZigBrains
pluginRepositoryUrl=https://github.com/FalsePattern/ZigBrains
pluginVersion=20.2.2
pluginVersion=20.3.0
pluginSinceBuild=242
pluginUntilBuild=242.*