tmp/
.vimspector.json
.vscode/
-dist/
\ No newline at end of file
+dist/
+**/node_modules/
\ No newline at end of file
--- /dev/null
+import * as vscode from "vscode";
+import * as vsctmls from 'vscode-textmate-languageservice';
+
+export async function activate(context: vscode.ExtensionContext) {
+ let console = vscode.window.createOutputChannel("Onyx Extension");
+ console.appendLine("Starting Onyx Extension");
+
+ const selector: vscode.DocumentSelector = { language: 'onyx', scheme: "file" };
+ const engine = new vsctmls.textmateEngine.TextmateEngine('onyx', 'source.onyx');
+ const documentSymbolProvider = new vsctmls.documentSymbols.DocumentSymbolProvider(engine);
+ const workspaceSymbolProvider = new vsctmls.workspaceSymbols.WorkspaceSymbolProvider('onyx', documentSymbolProvider);
+ // const foldingProvider = new vsctmls.folding.FoldingProvider(engine);
+ // const peekFileDefinitionProvider = new vsctmls.peekDefinitions.PeekDefinitionProvider(documentSymbolProvider);
+
+ context.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(selector, documentSymbolProvider));
+ context.subscriptions.push(vscode.languages.registerWorkspaceSymbolProvider(workspaceSymbolProvider));
+ // context.subscriptions.push(vscode.languages.registerFoldingRangeProvider(selector, foldingProvider));
+ // context.subscriptions.push(vscode.languages.registerDefinitionProvider(['onyx'], peekFileDefinitionProvider));
+
+ console.appendLine("Onyx Extension loaded.");
+}
\ No newline at end of file
--- /dev/null
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.activate = void 0;
+const vscode = require("vscode");
+const vsctmls = require("vscode-textmate-languageservice");
+function activate(context) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let console = vscode.window.createOutputChannel("Onyx Extension");
+ console.appendLine("Starting Onyx Extension");
+ const selector = { language: 'onyx', scheme: "file" };
+ const engine = new vsctmls.textmateEngine.TextmateEngine('onyx', 'source.onyx');
+ const documentSymbolProvider = new vsctmls.documentSymbols.DocumentSymbolProvider(engine);
+ const workspaceSymbolProvider = new vsctmls.workspaceSymbols.WorkspaceSymbolProvider('onyx', documentSymbolProvider);
+ // const foldingProvider = new vsctmls.folding.FoldingProvider(engine);
+ // const peekFileDefinitionProvider = new vsctmls.peekDefinitions.PeekDefinitionProvider(documentSymbolProvider);
+ context.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(selector, documentSymbolProvider));
+ context.subscriptions.push(vscode.languages.registerWorkspaceSymbolProvider(workspaceSymbolProvider));
+ // context.subscriptions.push(vscode.languages.registerFoldingRangeProvider(selector, foldingProvider));
+ // context.subscriptions.push(vscode.languages.registerDefinitionProvider(['onyx'], peekFileDefinitionProvider));
+ console.appendLine("Onyx Extension loaded.");
+ });
+}
+exports.activate = activate;
"categories": [
"Programming Languages"
],
+ "activationEvents": [
+ "onLanguage:onyx"
+ ],
+ "main": "./out/extension.js",
"contributes": {
- "languages": [{
- "id": "onyx",
- "aliases": ["Onyx", "onyx"],
- "extensions": [".onyx"],
- "configuration": "./language-configuration.json"
- }],
- "grammars": [{
- "language": "onyx",
- "scopeName": "source.onyx",
- "path": "./syntaxes/onyx.tmLanguage"
- }],
- "problemMatchers": [{
- "name": "onyx",
- "owner": "onyx",
- "fileLocation": "absolute",
- "pattern": {
- "regexp": "\\((/.*|[a-zA-Z]:[^:]+):([0-9]+),([0-9]+)\\) (.*)",
- "file": 1,
- "line": 2,
- "column": 3,
- "message": 4,
- "loop": true
+ "languages": [
+ {
+ "id": "onyx",
+ "aliases": [
+ "Onyx",
+ "onyx"
+ ],
+ "extensions": [
+ ".onyx"
+ ],
+ "configuration": "./language-configuration.json"
+ }
+ ],
+ "grammars": [
+ {
+ "language": "onyx",
+ "scopeName": "source.onyx",
+ "path": "./syntaxes/onyx.tmLanguage"
+ }
+ ],
+ "problemMatchers": [
+ {
+ "name": "onyx",
+ "owner": "onyx",
+ "fileLocation": "absolute",
+ "pattern": {
+ "regexp": "\\((/.*|[a-zA-Z]:[^:]+):([0-9]+),([0-9]+)\\) (.*)",
+ "file": 1,
+ "line": 2,
+ "column": 3,
+ "message": 4,
+ "loop": true
+ }
}
- }]
+ ]
+ },
+ "files": ["./textmate-configuration.json"],
+ "dependencies": {
+ "vscode-textmate-languageservice": "^0.1.1"
+ },
+ "devDependencies": {
+ "vscode": "^1.1.37"
}
}
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
+ <key>id</key>
+ <string>onyx</string>
<key>name</key>
- <string>Jai</string>
+ <string>onyx</string>
<key>scopeName</key>
<string>source.onyx</string>
<key>fileTypes</key>
<key>1</key>
<dict>
<key>name</key>
- <string>entity.name.function.onyx</string>
+ <string>meta.function.onyx entity.name.function.onyx</string>
</dict>
</dict>
</dict>
--- /dev/null
+{
+ "language": {
+ "id": "onyx",
+ "aliases": [ "Onyx" ],
+ "extensions": [ ".onyx" ]
+ },
+ "grammar": {
+ "language": "onyx",
+ "scopeName": "source.onyx",
+ "path": "./syntaxes/onyx.tmLanguage"
+ },
+ "comments": {
+ "lineComment": "comment.line.double-slash.onyx",
+ "blockComment": [ "comment.block.onyx" ]
+ },
+ "declarations": [
+ "entity\\.name\\.function\\.onyx",
+ "entity\\.name\\.type\\.onyx"
+ ],
+ "indentation": {},
+ "dedentation": [],
+ "punctuation": {
+ "continuation": ""
+ },
+ "markers": {
+ "start": "",
+ "end": ""
+ },
+ "symbols": {
+ "entity.name.function.onyx": 11,
+ "entity.name.type.onyx": 22
+ }
+}
\ No newline at end of file
--- /dev/null
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "target": "es6",
+ "outDir": "out",
+ "moduleResolution": "node",
+ "lib": ["es6", "es2016"],
+ "sourceMap": false,
+ "rootDir": "."
+ },
+ "exclude": ["node_modules", ".vscode-test"]
+}
\ No newline at end of file