2.4.10 (2024-11-08)
- typescript: fix interactive refactors (#244) - Thanks to @andrewbranch!
2.4.9 (2024-11-07)
- typescript: avoid crash when converting relatedInformation from overly large files
2.4.8 (2024-10-26)
- typescript: content-sensitive features are only allowed to return results in contiguous mapped ranges (#243)
2.4.7 (2024-10-25)
- typescript: set module resolution cache (#242) - Thanks to @Princesseuh!
2.4.6 (2024-10-07)
- language-server: correctly calculate coalesced document change (#240) - Thanks to @rchl!
2.4.5 (2024-09-14)
- typescript: avoid duplicate completion items in plugin mode
- typescript: deprecated resolveLanguageServiceHost
- kit: add setup hook for create checker functions
2.4.4 (2024-09-08)
- monaco: requests always cancel
2.4.3 (2024-09-08)
- language-server: handle completion item snippet unsupported (withastro/language-tools#948)
- monaco: getDiagnostics throws "TypeError: response is not a function"
- language-server: improve error handling for unsupported capabilities
2.4.2 (2024-09-04)
- language-server: prepare language service for synchronized documents
- typescript: fix inlay hints mapping for large chunks of source code mapped verbatim to generated code (#236) - Thanks to @piotrtomiak!
2.4.1 (2024-08-29)
- language-server: support files that do not exist in FS but are open in the editor for TS project (#235)
- typescript: ensure unopened files are synced to project (vuejs/language-tools#4711) (vuejs/language-tools#4632) - Thanks to @davidmatter!
- language-server: avoid project initialized twice
- language-service: don't set item data if item has been resolved
- language-service: don't set item data if LanguageServicePlugin does not provide resolve hook (#233)
- test-utils: correct
openUntitledDocument
params order - typescript:
runTsc
does not recognize service script withpreventLeadingOffset
enabled - language-server: replace
setTimeout
withsetImmediate
(#234) - Thanks to @nieyuyao!
- language-server: add
onDidChange
API forLanguageServer.workspaceFolders
- language-core: add
error
,source
params forverification.shouldReport
hook
2.4.0 (2024-08-18)
- language-service, language-server: add support for LSP
workspaceSymbol/resolve
request (#213) - language-service, language-server: add support for LSP
workspace/executeCommand
request (#214) - language-service, language-server: add support for LSP
textDocument/declaration
request - language-service, language-server: add support for LSP
textDocument/moniker
request - language-service, language-server: add support for LSP
textDocument/prepareTypeHierarchy
typeHierarchy/supertypes
typeHierarchy/subtypes
requests - language-service, language-server: add support for LSP
textDocument/inlineValue
request - monaco: implement CancellationToken for workers (#221)
- typescript: export
replaceTscContent
for downstream usage (#223) - Thanks @so1ve - kit: add support for checking project references files (#232)
- language-service: multi-level DocumentSymbol results from different virtual code are not merged accurately
- typescript: use Proxy instead of modifying LanguageService instance (#216)
- typescript: implement
directoryExists
for language service host - typescript: improve accuracy of
runTsc
extensions parameter behavior (#222) - typescript: synchronize script snapshots in a side-effect-free manner (#226)
- typescript: add missing workspace symbols support for TS plugin (vuejs/language-tools#4595)
- typescript: add missing code actions support for TS plugin (vuejs/language-tools#4586)
- monaco: can't recognize the package with type definitions in
@types/xxx
(#81) - language-server: simplify
asFileName
result if possible (volarjs/vscode-typescript-web#4497) - language-server: avoid loading diagnosticMessages for en language
- language-server: use
Program.getSourceFile
instead ofaskedFiles
to more accurately determine indirect reference files - language-server: respect client
linkSupport
property for declaration, definition, typeDefinition, implementation requests - jsdelivr: avoid sending read file request if
pkgFilePath
is empty - jsdelivr: avoid sending flat request for
xxx.ts
,xxx.d.ts
module names - jsdelivr: avoid sending flat request for
@types/xxx
if packagexxx
do not exist - source-map: don't throw when
fromOffsets
is not sorted - labs: associated script mappings are not visible
- language-server: update
watchFiles
API to return Disposable - language-server: only register event handlers when the language server does support a certain language feature
- language-server: add
setup
hook forcreateTypeScriptProject
function - langauge-server: improve LSP diagnostic integration (#230)
- language-server: split code based on logical concerns (#231)
- typescript: add
setup
hook forrunTsc
function - typescript: add
extraExtensionsToRemove
option forrunTsc
function for glint emit support - typescript:
createAsyncLanguageServicePlugin
'sscriptKind
param allows pass a getter - monaco: add
setup
hook forcreateSimpleWorkerLanguageService
,createTypeScriptWorkerService
functions - monaco: replace
activateAutomaticTypeAcquisition
withcreateNpmFileSystem
from the new@volar/jsdelivr
package (#218) (#219) - monaco: rename
servicePlugins
option tolanguageServicePlugins
- monaco: update to
monaco-languageserver-types
0.4 (#225) - Thanks @remcohaszing - language-core: no longer coupled to the TypeScript context, TypeScript properties are defined via interface merging in
@volar/typescript
(#215) - language-service: move project context from
Language
to language service option (#217) - test-utils: update
startLanguageServer
function to accept multiple workspace folders (#229)
2.3.4 (2024-06-25)
- language-service:
EmbeddedCodeFormattingOptions.level
value incorrect
2.3.3 (2024-06-24)
- language-core: move virtual code ID casing verify to language service (vuejs/language-tools#4497)
2.3.2 (2024-06-24)
- language-core: re-export
SourceMap
(#210) - Thanks @KermanX - language-service: make sure provideSelectionRanges array length is valid
- language-service: don't format parent virtual code if formatting range inside embedded code
- language-core: assert virtual code ID must be lowercase
- language-server: fix Webpack compatibility
2.3.1 (2024-06-22)
- labs: improving the capabilities of the virtual code editor (#208)
- labs: language client ID should not be case sensitive
- language-server: fix URI conversion for file names with similar embedded code ID
- language-server: write virtual file command broken
- vscode: error tolerant to
contentChanges
length (vuejs/language-tools#4457)
- source-map: use binary search for
translateOffset
- source-map: decoupling from
muggle-string
- source-map: improve range mapping accuracy (#204)
- source-map: API refactoring (Part of #206) - Thanks @piotrtomiak
- language-service: delete
SourceMapWithDocuments
,LinkedCodeMapWithDocument
- language-core: pluginized source map factory function (#207)
- language-service: fix SourceMapWithDocuments virtualCode typo (#190) - Thanks @machty
2.3.0 (2024-06-09)
- language-core: added option to resolve hidden extensions (#190)
- language-core: reimplemented multi-source mapping (#194)
- language-core: completed support for multi-source mapping in plugin mode (#197) - Thanks @piotrtomiak
- language-server: added support for Workspace Diagnostics (#199)
- language-server: accurately defined language server capabilities (#185)
- typescript: added option to prevent offset in plugin mode (#191)
- language-service: fixed conversion of markdown links
- vscode: showed error on missing TypeScript lib (#195) - Thanks @msujew
- monaco: fixed Monaco selection ranges conversion (#198) - Thanks @remcohaszing
- vscode: auto insertion request now exits early on vscode (#157)
- language-server: improved snapshot reusability (#196)
- typescript: skips
searchExternalFiles
if extra extensions are empty
- typescript: added
setup
option forcreateLanguageServicePlugin
,createAsyncLanguageServicePlugin
- language-core:
LanguagePlugin
now requires the first generic parameter to specify the script ID type - language-core:
updateVirtualCode
is now optional, if not provided,createVirtualCode
is always called to update source script - language-server:
createTypeScriptProjectProvider
has been renamed tocreateTypeScriptProject
- language-server:
createSimpleProjectProvider
has been renamed tocreateSimpleProject
- language-server: no longer handles
@vscode/l10n
- language-server: removed
InitializationOptions
interface - language-service: LSP related logic has been changed to be completely based on URI (#182)
- language-service:
LanguageServiceEnvironment#workapceFolder
is now a URI array and has been renamed toworkspaceFolders
- language-service:
provideAutoInsertionEdit
has been renamed toprovideAutoInsertSnippet
- language-service: normalized
LanguageService
API name format - labs: Codegen Stacks debug feature has been removed (#184)
2.2.5 (2024-05-23)
- source-map: add API to support generated code with different length than original code #183 - Thanks @piotrtomiak
2.2.4 (2024-05-15)
- typescript: path completion not working for meta files
2.2.3 (2024-05-15)
- typescript: empty items list should be valid completion result vuejs/language-tools#4368
- typescript: deduplication when merging hover infos #178
- language-service: transforming volar embedded URIs in markdown #180 - Thanks @remcohaszing
- language-server: memorize URI conversion results of synchronized documents #181
2.2.2 (2024-05-10)
- typescript: TS plugin only displays the first hover info
- language-core:
isRenameEnabled
respectCodeInformation.navigation.shouldRename
- test-utils: use stdio transport for test server #175
2.2.1 (2024-05-06)
- language-server: restored support for "Reload Project" command
- typescript: additional completion not working in TS plugin vuejs/language-tools#4323
- language-server: pass correct languageId when creating virtual code #173
2.2.0 (2024-05-01)
- typescript:
runTsc
cannot display source code for errors vuejs/language-tools#4099 - typescript:
runTsc
cannot display source code for errors with--incremental
#158 #162 - Thanks @wangshunnn - typescript: handle invalid references result
- typescript: parameter hints not working in TS plugin vuejs/language-tools#3948
- typescript: fault tolerance with TS file size assertion vuejs/language-tools#4278
- typescript: TS plugin find reference result's definition span should be able to fall back to file root
- typescript: prioritize resolving JS virtual script to matched
.d.ts
file - typescript: more inclusive performance rename operation vuejs/language-tools#4297
- typescript: normalize filePath for language service APIs vuejs/language-tools#4297
- typescript: avoid eagerly updating source scripts #166
- vscode: newly created file failed to match tsconfig immediately vuejs/language-tools#4297
- vscode: avoid crash when workspace tsdk does not exist
- language-server: fault-tolerant URI translation #159
- language-core: handle empty mappings in updateVirtualCodeMapOfMap #161 - Thanks @remcohaszing
- typescript: fix
runTsc
performance regression since 2.0 vuejs/language-tools#4238 - typescript:
runTsc
cache module resolution result vuejs/language-tools#4177
- More accurate interface design and terminology #154
- language-server: architecture improvements #167
- language-server: remove
ConfigurationHost
abstract - language-service: expose changed setting sections on
onDidChangeConfiguration
- language-service:
ServiceContext.inject
method return nullable - typescript:
decorateLanguageServiceHost
less side effects #160 - language-core: make
CodeInformation
properties optional - language-core: resolved language ID by LangaugePlugin #168
2.1.6 (2024-03-28)
- typescript: ts plugin cannot generate embedded code for .ts files
- typescript: handle mapping for formatting APIs in plugin vuejs/language-tools#4066
- typescript: handle mapping for file rename API in plugin vuejs/language-tools#3646
- typescript: semantic tokens range param does not mapped correctly vuejs/language-tools#3934 vuejs/language-tools#3935
2.1.5 (2024-03-23)
- language-server:
GetVirtualCodeRequest
incorrectly responses empty vritual code if no mappings - typescript: mark the parent directory as exists when created a file
2.1.4 (2024-03-22)
- test-utils: add 3 APIs:
updateTextDocument
,updateConfiguration
,didChangeWatchedFiles
- typescript: sys cache is not updated correctly in case sensitive file system #153
- typescript: create a new file did not update sys cache (withastro/language-tools#685)
2.1.3 (2024-03-20)
- typescript: fix emit signature to enable incremental work to function properly #150 - thanks @skywalker512
- language-server: also consider deletions for getRootFiles #152 - thanks @Princesseuh
- language-service: add name for
SemanticToken
tuple members - vscode: migrate from
StatusBarItem
toLanguageStatusItem
2.1.2 (2024-03-07)
- typescript: reverted f041c79 as it caused severe performance regressions vuejs/language-tools#4024
2.1.1 (2024-03-05)
- test-utils: allow unknown initialization options and expose
locale
option #142 - typescript: virtual file update condition should be based generated snapshot rather than source script version
- monaco: correct package name resolve on ATA #149
- language-service: provideCodeActions's range param is not accurately mapped
- language-service: provideInlayHints's range param is not accurately mapped
2.1.0 (2024-02-26)
- language-service: more reliable embedded code formatting #138
- Embedded code indentation is no longer handled by
@volar/language-service
, but instead calculated and passed asinitialIndentLevel
, which is then reliably handled by ServicePlugin for additional indentation in specific languages. - The
provideDocumentFormattingEdits
andprovideOnTypeFormattingEdits
APIs now accept theEmbeddedCodeFormattingOptions
parameter, which includesinitialIndentLevel
. - Formatting ranges are now correctly mapped to embedded code formatting ranges.
- Removed the no longer needed
ServicePlugin.provideFormattingIndentSensitiveLines
API. - No longer relies on the conventional
volar.format.initialIndent
editor setting. - Added
ServicePlugin.resolveEmbeddedCodeFormattingOptions
API, allowing downstream tools to modify theinitialIndentLevel
passed to ServicePlugin based on custom settings (replacingvolar.format.initialIndent
).
- Embedded code indentation is no longer handled by
- test-utils: server tester support
ClientCapabilities
param forinitialize()
API - test-utils: server tester expose
sendDocumentRangeFormattingRequestRequest()
andshutdown()
API - language-core: make embeddedCodes optional in VirtualCode #137
- language-server: SemanticTokens requests are no longer delayed by 200ms
- language-server: APIs updates #140
createSimpleProjectProvider
has been renamed tocreateSimpleProjectProviderFactory
and needs to be invoked with no arguments.createTypeScriptProjectProvider
has been renamed tocreateTypeScriptProjectProviderFactory
and needs to be invoked with a TS module as an argument.- Deprecate
typescript#tsdk
,typescript#tsdkUrl
,ignoreTriggerCharacters
initialization options. - Deprecate
fullCompletionList
initialization option. #139 - Remove experimental
provideDiagnosticMarkupContent
API.
- language-server: language features not working for untitled documents #135
- language-server:
pushDiagnostics
should not be notified when closing a file if server push diagnostics are not enabled - language-service
provideSelectionRanges
API multiple result merging method is inconsistent with VSCode - language-service
provideDocumentSemanticTokens
API'srange
param is not mapped to virtual code - language-service
provideDocumentFormattingEdits
API'srange
param is not accurately mapped to virtual code #136 - language-service fix caching of semantic diagnostics #141
- test-utils: invalidate cache when calling
openInMemoryDocument()
- monaco:
insertText
andrange
properties of completion item not converted correctly - typescript: ts plugin incorrectly resolve module name
2.0.4 (2024-02-13)
- ci: integrate with https://github.com/volarjs/ecosystem-ci
- language-service: transform markdown links in completion items #133
- typescript: typescript plugin module resolve behavior inconsistent with language server
- typescript: typescript plugin breaks semantic highlighting for .ts files (withastro/language-tools#788)
2.0.3 (2024-02-10)
- labs: recognize Glint and other file extensions via reading installed extensions language configuration
- labs: improve mapping decorations display
- labs: extension keeps sending requests when output panel is opened
- language-service: transform markdown links for hover content (mdx-js/mdx-analyzer#394)
- typescript: unable to resolve import path based on package export (withastro/language-tools#778)
2.0.2 (2024-02-08)
- labs: extension not working with framework version 2.0.0
- typescript: remove runtime dependency on
@volar/language-service
- typescript: additional completion not working in ts plugin
- typescript: remove warning when
allowNonTsExtensions
is not set
2.0.1 (2024-02-05)
- typescript: expose
FileRegistry
inproxyCreateProgram()
#128 - typescript: re-support extra virtual scripts for LSP and Kit #132
- vscode: update
currentLabsVersion
to2
- typescript: remove mistakenly published scripts
lib/quickstart/create(Async)TSServerPlugin
, please uselib/quickstart/create(Async)LanguageServicePlugin
instead of
2.0.0 (2024-01-21)
Please refer to #85 for details.