typescript-go
typescript-go copied to clipboard
Crashing when project path contains Chinese characters.
Stack trace
panic: regexp: Compile(`(?i)^((/Users/x/develop/proj_\副\本/src/node(/.+?)?/[^/]*)|(/Users/x/develop/proj_\副\本/src/node\-common(/.+?)?/[^/]*)|(/Users/x/develop/proj_\副\本/node_modules(/.+?)?/[^/]*)|(/Users/x/develop/proj_\副\本/src/[^/]*/[^/]*/node_modules(/.+?)?/[^/]*))($|/)`): error parsing regexp: invalid escape sequence: `\副`
Steps to reproduce
1.Create a project with Chinese characters in its name and initialize node_modules. 2.Use the VS Code TypeScript Native plugin and start the service.
Likely this would be fixed by #1947.
A full backtrace would be helpful.
2025-12-11 14:06:27.072 [info] configuration: [map[autoClosingTags:true check:map[npmIsInstalled:true] disableAutomaticTypeAcquisition:false enablePromptUseWorkspaceTsdk:true experimental:map[useTsgo:true] format:map[enable:true indentSwitchCase:true insertSpaceAfterCommaDelimiter:true insertSpaceAfterConstructor:false insertSpaceAfterFunctionKeywordForAnonymousFunctions:true insertSpaceAfterKeywordsInControlFlowStatements:true insertSpaceAfterOpeningAndBeforeClosingEmptyBraces:true insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:false insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:true insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:false insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:false insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:false insertSpaceAfterSemicolonInForStatements:true insertSpaceAfterTypeAssertion:false insertSpaceBeforeAndAfterBinaryOperators:true insertSpaceBeforeFunctionParenthesis:false placeOpenBraceOnNewLineForControlBlocks:false placeOpenBraceOnNewLineForFunctions:false semicolons:insert] implementationsCodeLens:map[enabled:true showOnAllClassMethods:false showOnInterfaceMethods:false] inlayHints:map[enumMemberValues:map[enabled:true] functionLikeReturnTypes:map[enabled:true] parameterNames:map[enabled:literals suppressWhenArgumentMatchesName:true] parameterTypes:map[enabled:true] propertyDeclarationTypes:map[enabled:true] variableTypes:map[enabled:true suppressWhenTypeMatchesName:true]] locale:auto native-preview:map[pprofDir: trace:map[server:verbose] tsdk:] npm: preferGoToSourceDefinition:false preferences:map[autoImportFileExcludePatterns:[] autoImportSpecifierExcludeRegexes:[] importModuleSpecifier:shortest importModuleSpecifierEnding:auto includePackageJsonAutoImports:auto jsxAttributeCompletionStyle:auto organizeImports:map[] preferTypeOnlyAutoImports:false quoteStyle:auto renameMatchingJsxTags:true useAliasesForRenames:true] referencesCodeLens:map[enabled:true showOnAllFunctions:false] reportStyleChecksAsWarnings:true suggest:map[autoImports:true classMemberSnippets:map[enabled:true] completeFunctionCalls:true completeJSDocs:true enabled:true includeAutomaticOptionalChainCompletions:true includeCompletionsForImportStatements:true jsdoc:map[generateReturns:true] objectLiteralMethodSnippets:map[enabled:true] paths:false] suggestionActions:map[enabled:true] tsc:map[autoDetect:on] tsdk: tsserver:map[enableRegionDiagnostics:true enableTracing:false experimental:map[enableProjectDiagnostics:false] log:off maxTsServerMemory:3072 nodePath: pluginPaths:[] useSyntaxServer:auto watchOptions:vscode web:map[projectWideIntellisense:map[enabled:true suppressSemanticErrors:false] typeAcquisition:map[enabled:true]]] updateImportsOnFileMove:map[enabled:prompt] updateImportsOnPaste:map[enabled:true] validate:map[enable:true] workspaceSymbols:map[excludeLibrarySymbols:true scope:allOpenProjects]]], []interface {}
2025-12-11 14:06:27.076 [info] Processed 1 file changes in 0s
2025-12-11 14:06:27.080 [error] panic: regexp: Compile(`(?i)^((c\:/Users/pl816/OneDrive/\文\件/git/userjs/69shuba auto \書\簽/node_modules(/.+?)?/[^/]*)|(c\:/Users/pl816/OneDrive/\文\件/git/userjs/69shuba auto \書\簽(/.+?)?/node_modules/[^/]*))($|/)`): error parsing regexp: invalid escape sequence: `\文`
2025-12-11 14:06:27.080 [error]
2025-12-11 14:06:27.080 [error] goroutine 34 [running]:
2025-12-11 14:06:27.080 [error] regexp.MustCompile({0xc00024e340, 0xc9})
2025-12-11 14:06:27.081 [error] regexp/regexp.go:313 +0xb4
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/tsoptions.getWildcardDirectories({0xc0002062c0, 0x1, 0x0?}, {0xc0002243e0?, 0x0?, 0x0?}, {0xf0?, {0xc000248000?, 0xc000262008?}})
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/tsoptions/wildcarddirectories.go:37 +0xcd
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/tsoptions.(*ParsedCommandLine).WildcardDirectories.func1()
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/tsoptions/parsedcommandline.go:215 +0x5b
2025-12-11 14:06:27.081 [error] sync.(*Once).doSlow(0x4b?, 0x4b?)
2025-12-11 14:06:27.081 [error] sync/once.go:78 +0xac
2025-12-11 14:06:27.081 [error] sync.(*Once).Do(...)
2025-12-11 14:06:27.081 [error] sync/once.go:69
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/tsoptions.(*ParsedCommandLine).WildcardDirectories(0xc00021a580)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/tsoptions/parsedcommandline.go:213 +0x3e
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project.(*configFileRegistryBuilder).updateRootFilesWatch(0xc0002029c0, {0xc000248000?, 0x4b?}, 0xc000220680)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/configfileregistrybuilder.go:174 +0x69
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project.(*configFileRegistryBuilder).reloadIfNeeded(0xc0002029c0, 0xc000220680, {0xc000248000, 0x4b}, {0xc000248140, 0x4b}, 0xc0002001e0)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/configfileregistrybuilder.go:111 +0x173
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project.(*configFileRegistryBuilder).acquireConfigForFile.func2(0xc000220680?)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/configfileregistrybuilder.go:273 +0x10a
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/dirty.(*SyncMapEntry[...]).changeLocked(0xc0001dbca0?, 0x2?)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/dirty/syncmap.go:105 +0x1b6
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/dirty.(*SyncMapEntry[...]).ChangeIf(0x7ff7bbfed940, 0xc000248140, 0xc0001dbd28?)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/dirty/syncmap.go:135 +0xc5
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project.(*configFileRegistryBuilder).acquireConfigForFile(0xc0002029c0, {0xc000248000, 0x4b}, {0xc000248140, 0x4b}, {0xc0002322a0, 0x59}, 0xc0002001e0)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/configfileregistrybuilder.go:258 +0x29c
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project.(*configFileRegistryBuilder).findOrAcquireConfigForFile(0xc000200190?, {0xc000248000?, 0x1e?}, {0xc000248140?, 0x7ff7bb333425?}, {0xc0002322a0?, 0xc0002225a8?}, 0x1?, 0xc0001dbe38?)
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/configfileregistrybuilder.go:93 +0x37
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project.(*ProjectCollectionBuilder).findOrCreateDefaultConfiguredProjectWorker.func2({{0xc000248000?, 0x0?}, 0xc000248000?, 0xc000200190?})
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/project/projectcollectionbuilder.go:714 +0xe5
2025-12-11 14:06:27.081 [error] github.com/microsoft/typescript-go/internal/core.BreadthFirstSearchParallelEx[...].func3(0xc000202ae0)
2025-12-11 14:06:27.082 [error] github.com/microsoft/typescript-go/internal/core/bfs.go:115 +0x15d
2025-12-11 14:06:27.082 [error] created by github.com/microsoft/typescript-go/internal/core.BreadthFirstSearchParallelEx[...].func1-range1 in goroutine 23
2025-12-11 14:06:27.082 [error] github.com/microsoft/typescript-go/internal/core/bfs.go:100 +0x256
2025-12-11 14:06:27.084 [error] The typescript.native-preview-lsp server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.
2025-12-11 14:06:27.085 [error] Server process exited with code 2.