Releases: vsce-toolroom/vscode-textmate-languageservice
Releases · vsce-toolroom/vscode-textmate-languageservice
4.0.0
- Mark package support as LTS mode instead of maintenance mode.
- Add embedded language support.
- Add JSONC support for configuration files.
- Generate
vscode.TextDocument
mocks for document service output. - Switch
LiteTextDocument
tovscode.TextDocument
across the package. - Allow the package to query embedded and builtin languages when extensions supply a
vscode.ExtensionContext
. - Change contribution logic to prioritise a supplied extension
context
instead of restricting contributions to that extension. - Export
ContributorData
- a utility for statically resolving language and grammar contributions. - Patch
findLanguageIdFromScopeName
grammar priority to match core behaviour. - Update API documentation to match 4.0.0.
3.0.1
3.0.0
- [BREAKING] Rename
api.getLanguageConfiguration
toapi.getLanguageContribution
. - [BREAKING] Rename
api.getGrammarConfiguration
toapi.getGrammarContribution
. - Add
getLanguageConfiguration
API method to loadvscode.LanguageConfiguration
. - Add
plaintext
language tokenization and grammar resolution. - Hotfix for "unrecognized language" error for
plaintext
documents in API token methods.
2.0.0-recovery.1
Document API additions made in 2.0.0
2.0.0
- The VSCE Toolroom open-source collective has adopted the Textmate language service project!
- Redesigned the logo, inspired by the V8 engine and the Textmate osteopermum flower.
- Added support for tokenization and Language providers from built-in grammars as well as service-only grammars.
- Marked
TextmateLanguageService~context
parameter as optional in the API types. - Marked the API from 1.0.0 as compatible with 1.55.0, not 1.51.0.
- Provided community resolution to microsoft/vscode#109919 & microsoft/vscode#99356.
- Implemented API methods in an
api
namespace for developer-friendly logic:- Add
getTokenInformationAtPosition
method for fast positional token polyfill:vscode.TokenInformation
. - Add
getScopeInformationAtPosition
method to get Textmate token data:TextmateToken
. - Add
getScopeRangeAtPosition
method to get token range:vscode.Range
. - Add
getLanguageConfiguration
method for language configuration:LanguageDefinition
. - Add
getGrammarConfiguration
method to get language grammar wiring:GrammarLanguageDefinition
. - Add
getContributorExtension
method to get extension source of language ID:vscode.Extension
.
- Add
- Linted the Textmate scope parser correctly & automatically in the test pipeline.
- Added
getOniguruma
to API utilities, a browser-ready non-streaming build ofvscode-oniguruma
.
1.2.0
- Add support for creation of tokenization or light document service.
- TL:DR; swap the
"contributes"
key with a 'fake'"textmate-language-contributes"
key inpackage.json
. - Now possible to wire up a fake language and grammar "contribution" to a package service.
- TL:DR; swap the
- Add service-only tests for TypeScript in the test suite.
- Use
TextmateLanguageService
as global key instead ofLSP
in service workers."LSP"
is an cross-process and IDE-agnostic message format/standard for language feature data.- This library's just a factory for language feature services in VS Code.
- This change is not breaking thanks to Webpack.
- Improve diff generation for error logging in the sample output validator that's used to test feature providers.
- Add keywords to the NPM package's metadata for better search engine discovery.
- Skip web testing of
vscode.DefinitionProvider
andvscode.WorkspaceSymbolProvider
factory methods.
1.1.0
- Bundle files using Webpack for performance boost.
- Add browser production support (bundle
onig.wasm
usingencoded-uint8array-loader
& prevent reliance onfetch
). - Restore typing declaration files for dependent extension consumers.
- Fix broken Gitlab pipeline so we have CI testing again.
- Fix line number collisions between entry symbols in the outline service.
- Fix container name in symbol information output for the document symbol provider.
- Upgrade
vscode-textmate
from 7.0.4 to 9.0.0 (microsoft/vscode-textmate#198). - Ignore test files from package before
npm publish
to reduce size by ~20%. - Add a test suite runner for testing compatibility with dependent web extensions.
- Improve test suite performance by 20% by removing dependencies & bundling.
1.0.0 (stable)
- Achieved browser readiness by handling hashing better. We use native hashing of file text contents to keep it fast.
- Upgrade from SHA-1 algorithm (a famous collision-attack vector) and adopt stable SHA-256 alternatives.
- Remove last external dependency (
git-sha1
) so we don't need a bundler.
1.0.0-rc-2
- Fix the line number in the folding provider for top-level declaration folds after the first declaration.
- Add browser production support with a cost-benefit tradeoff... we now load
onig.wasm
(Textmate grammar regex parser) without streaming. - Remove any system dependencies in the test scripts. Plus the scripts use the CLIs better & are much cleaner.
- Migrate previous CI workflow pipeline to Gitlab.
1.0.0-rc-1
- Switch API to async factory class format that generates providers and exposes services.
- Introduce optional top-level
"textmate-languageservices"
map of language ID to path, supporting extension manifests with multiple configured languages.
We default to./textmate-configuration.json
for one language. - Rewrite configuration loading and service caching to occur asynchronously using native VS Code APIs.
- Rewrite folding provider to remove performance overheads in header & block folding.
- Fix external file search matching in the definition provider (which was searching files matching
./Symbol.ext
before). - Fix line token incrementation for decremented lines in the tokenizer service (FKA
TextmateEngine
). - Add performance layer to Textmate scope selector parser to bypass the need for a WASM parser.