Added vscodium

This commit is contained in:
Kristofers Solo
2022-04-28 21:17:01 +03:00
parent 837a479d82
commit d7dddc39ef
29139 changed files with 250215 additions and 45125 deletions

View File

@@ -0,0 +1,54 @@
'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.DjangoCompletionItemProvider = void 0;
const vscode_1 = require("vscode");
const constants_1 = require("../constants");
const settings = vscode_1.workspace.getConfiguration("django");
const exclusions = settings.snippets.exclude;
class DjangoCompletionItemProvider {
constructor() {
this.selector = constants_1.PYTHON_SELECTOR;
this.directory = '';
this.files = [];
this.snippets = [];
}
loadSnippets(snippetPrvider) {
return __awaiter(this, void 0, void 0, function* () {
if (!settings.snippets.use)
return;
if (exclusions.some(word => this.directory.includes(word)))
return;
this.snippets = Array.prototype.concat(...yield Promise.all(this.files.filter(file => !exclusions.some(word => file.includes(word)))
.map(file => snippetPrvider.readSnippets(`${this.directory}/${file}`))));
if (!settings.i18n) {
this.snippets = this.snippets.map(snippet => {
snippet.body = snippet.body.replace(/_\("(\S*)"\)/g, '"$1"');
return snippet;
});
}
});
}
buildSnippet(snippet) {
let item = new vscode_1.CompletionItem(snippet.prefix, vscode_1.CompletionItemKind.Snippet);
item.insertText = new vscode_1.SnippetString(snippet.body);
item.detail = snippet.detail;
item.documentation = new vscode_1.MarkdownString(snippet.description);
return item;
}
provideCompletionItems(document, position, token, context) {
return __awaiter(this, void 0, void 0, function* () {
return this.snippets.map(this.buildSnippet);
});
}
}
exports.DjangoCompletionItemProvider = DjangoCompletionItemProvider;
//# sourceMappingURL=base.js.map

View File

@@ -0,0 +1,96 @@
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.DjangoUrlCompletionItemProvider = exports.DjangoTemplatetagsCompletionItemProvider = exports.DjangoViewCompletionItemProvider = exports.DjangoModelCompletionItemProvider = exports.DjangoMigrationCompletionItemProvider = exports.DjangoManagerCompletionItemProvider = exports.DjangoFormCompletionItemProvider = exports.DjangoAdminCompletionItemProvider = exports.DjangoPythonCompletionItemProvider = void 0;
const constants_1 = require("../constants");
const base_1 = require("./base");
class DjangoPythonCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = constants_1.PYTHON_SELECTOR;
this.directory = 'python';
this.files = ["imports.toml", "utils.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoPythonCompletionItemProvider = DjangoPythonCompletionItemProvider;
class DjangoAdminCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/admin{**/,}*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "admin";
this.files = ["classes.toml", "imports.toml", "options.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoAdminCompletionItemProvider = DjangoAdminCompletionItemProvider;
class DjangoFormCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/forms{**/,}*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "forms";
this.files = ["classes.toml", "imports.toml", "fields.toml", "fields-postgres.toml", "methods.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoFormCompletionItemProvider = DjangoFormCompletionItemProvider;
class DjangoManagerCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/{models,managers,querysets}{**/,}*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "models";
this.files = ["managers.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoManagerCompletionItemProvider = DjangoManagerCompletionItemProvider;
class DjangoMigrationCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/migrations/**/*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "models";
this.files = ["migrations.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoMigrationCompletionItemProvider = DjangoMigrationCompletionItemProvider;
class DjangoModelCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/{models,migrations}{**/,}*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "models";
this.files = ["classes.toml", "imports.toml", "fields.toml", "fields-postgres.toml", "methods.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoModelCompletionItemProvider = DjangoModelCompletionItemProvider;
class DjangoViewCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/views{**/,}*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "views";
this.files = ["classes.toml", "imports.toml", "methods.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoViewCompletionItemProvider = DjangoViewCompletionItemProvider;
class DjangoTemplatetagsCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/templatetags/**/*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "templatetags";
this.files = ["imports.toml", "methods.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoTemplatetagsCompletionItemProvider = DjangoTemplatetagsCompletionItemProvider;
class DjangoUrlCompletionItemProvider extends base_1.DjangoCompletionItemProvider {
constructor(snippetPrvider) {
super();
this.selector = Object.assign({ pattern: '**/urls{**/,}*.py' }, constants_1.PYTHON_SELECTOR);
this.directory = "urls";
this.files = ["imports.toml", "methods.toml", "regexes.toml"];
this.loadSnippets(snippetPrvider);
}
}
exports.DjangoUrlCompletionItemProvider = DjangoUrlCompletionItemProvider;
//# sourceMappingURL=completionItemProvider.js.map

View File

@@ -0,0 +1,6 @@
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.PYTHON_SELECTOR = exports.DJANGO_HTML_SELECTOR = void 0;
exports.DJANGO_HTML_SELECTOR = { scheme: 'file', language: 'django-html' };
exports.PYTHON_SELECTOR = { scheme: 'file', language: 'python' };
//# sourceMappingURL=constants.js.map

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,44 @@
'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_1 = require("vscode");
const definitionProvider_1 = require("./providers/definitionProvider");
const completionItemProvider_1 = require("./completions/completionItemProvider");
const utils_1 = require("./utils");
function activate(context) {
return __awaiter(this, void 0, void 0, function* () {
const snippetProvider = new utils_1.SnippetProvider(context.extensionUri);
const definitions = new definitionProvider_1.TemplatePathProvider();
context.subscriptions.push(vscode_1.languages.registerDefinitionProvider(definitions.selector, definitions));
const djangoPythonSnippets = new completionItemProvider_1.DjangoPythonCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoPythonSnippets.selector, djangoPythonSnippets));
const djangoAdminSnippets = new completionItemProvider_1.DjangoAdminCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoAdminSnippets.selector, djangoAdminSnippets));
const djangoFormSnippets = new completionItemProvider_1.DjangoFormCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoFormSnippets.selector, djangoFormSnippets));
const djangoManagerSnippets = new completionItemProvider_1.DjangoManagerCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoManagerSnippets.selector, djangoManagerSnippets));
const djangoMigrationSnippets = new completionItemProvider_1.DjangoMigrationCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoMigrationSnippets.selector, djangoMigrationSnippets));
const djangoModelSnippets = new completionItemProvider_1.DjangoModelCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoModelSnippets.selector, djangoModelSnippets));
const djangoViewSnippets = new completionItemProvider_1.DjangoViewCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoViewSnippets.selector, djangoViewSnippets));
const djangoTemplatetagsSnippets = new completionItemProvider_1.DjangoTemplatetagsCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoTemplatetagsSnippets.selector, djangoTemplatetagsSnippets));
const djangoUrlSnippets = new completionItemProvider_1.DjangoUrlCompletionItemProvider(snippetProvider);
context.subscriptions.push(vscode_1.languages.registerCompletionItemProvider(djangoUrlSnippets.selector, djangoUrlSnippets));
(0, utils_1.postInitHook)();
});
}
exports.activate = activate;
//# sourceMappingURL=extension.js.map

View File

@@ -0,0 +1,66 @@
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.TemplatePathProvider = void 0;
const path_1 = require("path");
const vscode_1 = require("vscode");
const constants_1 = require("../constants");
let regex = (regexes) => new RegExp(regexes.map(re => re.source).join(''));
const quote = /(?:\'|\")/;
const path_re = /([\w/\-]+\.[\w]+)/;
const rel_path_re = /((?:(?:\.\/|(?:\.\.\/)+))[\w/\-]+\.[\w]+)/;
const PATH_RE = regex([quote, path_re, quote]);
const RELATIVE_PATH_RE = regex([quote, rel_path_re, quote]);
const BEGIN_OF_FILE = new vscode_1.Position(0, 0);
let cache = {};
class TemplatePathProvider {
constructor() {
this.selector = [constants_1.DJANGO_HTML_SELECTOR, constants_1.PYTHON_SELECTOR];
}
static getTemplate(document, position, token) {
let path;
let search;
let line = document.lineAt(position.line).text;
let match = line.match(PATH_RE);
let relative_match = line.match(RELATIVE_PATH_RE);
if (relative_match) {
path = relative_match[1];
search = vscode_1.workspace.asRelativePath((0, path_1.resolve)((0, path_1.dirname)(document.uri.path), path));
}
else if (match) {
path = match[1];
search = `**/templates/${path}`;
}
else {
return Promise.resolve(null);
}
let pos = position.character;
let cursorOverPath = pos > line.indexOf(path) && pos < line.indexOf(path) + path.length;
let uri;
if (search in cache) {
uri = Promise.resolve(cache[search]);
}
else {
uri = vscode_1.workspace.findFiles(search, '', 1, token).then(results => {
let result = results.length ? results[0] : null;
if (result)
cache[search] = result;
return result;
});
}
if (cursorOverPath) {
return uri;
}
else {
return Promise.resolve(null);
}
}
provideDefinition(document, position, token) {
return TemplatePathProvider.getTemplate(document, position, token).then(template => {
if (!template)
return null;
return new vscode_1.Location(template, BEGIN_OF_FILE);
});
}
}
exports.TemplatePathProvider = TemplatePathProvider;
//# sourceMappingURL=definitionProvider.js.map

View File

@@ -0,0 +1,34 @@
"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.postInitHook = exports.SnippetProvider = void 0;
const toml = require("toml");
const vscode = require("vscode");
const util_1 = require("util");
class SnippetProvider {
constructor(extensionUri) {
this.extensionUri = extensionUri;
}
readSnippets(name) {
return __awaiter(this, void 0, void 0, function* () {
const location = vscode.Uri.joinPath(this.extensionUri, 'completions/snippets', name);
const buffer = yield vscode.workspace.fs.readFile(location);
const str = new util_1.TextDecoder("utf-8").decode(buffer);
return toml.parse(str).snippets;
});
}
}
exports.SnippetProvider = SnippetProvider;
function postInitHook() {
return __awaiter(this, void 0, void 0, function* () { });
}
exports.postInitHook = postInitHook;
//# sourceMappingURL=utils.js.map