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