mirror of https://github.com/Wilfred/difftastic/
Add web-tree-sitter-sfapex package
parent
31853f4ca3
commit
58bdaa3557
@ -0,0 +1,6 @@
|
|||||||
|
type Parser = import("web-tree-sitter");
|
||||||
|
declare module "web-tree-sitter-sfapex" {
|
||||||
|
function getApexParser(): Promise<Parser>;
|
||||||
|
function getSoqlParser(): Promise<Parser>;
|
||||||
|
function getSoslParser(): Promise<Parser>;
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
const Parser = require("web-tree-sitter");
|
||||||
|
const fs = require("fs");
|
||||||
|
|
||||||
|
function getApexParser() {
|
||||||
|
return getParser(__dirname + "/tree-sitter-apex.wasm");
|
||||||
|
}
|
||||||
|
function getSoqlParser() {
|
||||||
|
return getParser(__dirname + "/tree-sitter-soql.wasm");
|
||||||
|
}
|
||||||
|
function getSoslParser() {
|
||||||
|
return getParser(__dirname + "/tree-sitter-sosl.wasm");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} wasmLangFile
|
||||||
|
* @returns {Promise<Parser>}
|
||||||
|
*/
|
||||||
|
async function getParser(wasmLangFile) {
|
||||||
|
return new Promise(async (resolve, reject) => {
|
||||||
|
await Parser.init();
|
||||||
|
// make loadable on NodeJS to enable testing, should be smarter later
|
||||||
|
const parser = new Parser();
|
||||||
|
fs.readFile(wasmLangFile, async (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const lang = await Parser.Language.load(data);
|
||||||
|
parser.setLanguage(lang);
|
||||||
|
resolve(parser);
|
||||||
|
} catch (err2) {
|
||||||
|
reject(err2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
getApexParser,
|
||||||
|
getSoqlParser,
|
||||||
|
getSoslParser,
|
||||||
|
};
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "web-tree-sitter-sfapex",
|
||||||
|
"version": "0.0.9-beta2",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "web-tree-sitter-sfapex",
|
||||||
|
"version": "0.0.9-beta2",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"web-tree-sitter": "^0.20.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/web-tree-sitter": {
|
||||||
|
"version": "0.20.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz",
|
||||||
|
"integrity": "sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "web-tree-sitter-sfapex",
|
||||||
|
"version": "0.0.9",
|
||||||
|
"description": "tree-sitter-sfapex WASM",
|
||||||
|
"main": "index.js",
|
||||||
|
"types": "index.d.ts",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "Anthony Heber",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"web-tree-sitter": "^0.20.8"
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue