Socket
Socket
Sign inDemoInstall

vscode-oniguruma

Package Overview
Dependencies
0
Maintainers
6
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vscode-oniguruma

VSCode oniguruma bindings


Version published
Weekly downloads
962K
decreased by-16.97%
Maintainers
6
Install size
496 kB
Created
Weekly downloads
 

Package description

What is vscode-oniguruma?

The vscode-oniguruma package is a Node.js binding to the Oniguruma regular expressions library. It is primarily used in Visual Studio Code to power the textmate tokenizer, which is responsible for syntax highlighting based on TextMate grammars. The package allows for efficient regular expression matching and is optimized for use in text editors.

What are vscode-oniguruma's main functionalities?

Regular Expression Matching

This feature allows you to match strings against regular expressions. The code sample demonstrates how to load the Oniguruma WebAssembly binary, create a new OnigScanner with a regular expression, and find the next match in a given string starting from a specific position.

const { loadWASM, OnigScanner } = require('vscode-oniguruma');

// Load the WebAssembly binary for Oniguruma.
loadWASM(require('vscode-oniguruma/release/onig.wasm')).then(() => {
  const scanner = new OnigScanner(['\\w+']);
  const match = scanner.findNextMatchSync('hello world', 0);
  console.log(match);
});

Syntax Highlighting

This feature is used for syntax highlighting by matching keywords or patterns in a source code string. The code sample shows how to create an OnigScanner with a pattern for matching 'if' or 'else' keywords, create an OnigString from source code, and then find and log the matched keyword.

const { OnigScanner, OnigString } = require('vscode-oniguruma');

const scanner = new OnigScanner(['\\b(if|else)\\b']);
const source = new OnigString('if (condition) { return true; } else { return false; }');

const match = scanner.findNextMatchSync(source, 0);
if (match) {
  console.log(`Matched keyword: ${source.content.substring(match.captureIndices[0].start, match.captureIndices[0].end)}`);
}

Other packages similar to vscode-oniguruma

Readme

Source

VS Code Oniguruma

Oniguruma bindings for VS Code. This library is used in VS Code and is not intended to grow to have general Oniguruma WASM bindings.

Installing

npm install vscode-oniguruma

API doc

See the main.d.ts file

Developing

  • Clone the repository.
  • Run git submodule init.
  • Run git submodule update.
  • Open the repository using the Remote - Containers extension, which will automatically create a docker container with the correct emscripten version and environment for building the WASM.
  • Run npm install.
  • Compile the oniguruma library with npm run build-onig (needed just once).
  • Compile the .wasm with npm run build-wasm (needed every time the onig.cc file is changed).
  • Compile the .js with npm run build-tsc or watch with npm run watch-tsc (needed every time the .ts files are changed).
  • Package for releasing as UMD with npm run package

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

License

MIT

This project incorporates material from other projects. Please see NOTICES.txt

Thank you

Special thank you to @lieene for transfering the npm package name vscode-oniguruma to this project.

FAQs

Last updated on 15 Sep 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc