Version 1.0
This commit is contained in:
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
export {}
|
||||
Generated
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
import { registerLanguage } from '../_.contribution.js';
|
||||
|
||||
registerLanguage({
|
||||
id: "python",
|
||||
extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
|
||||
aliases: ["Python", "py"],
|
||||
firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
|
||||
loader: () => import('./python.js')
|
||||
});
|
||||
+366
@@ -0,0 +1,366 @@
|
||||
import '../../editor/browser/coreCommands.js';
|
||||
import '../../editor/browser/widget/codeEditor/codeEditorWidget.js';
|
||||
import '../../editor/browser/widget/diffEditor/diffEditor.contribution.js';
|
||||
import '../../editor/contrib/anchorSelect/browser/anchorSelect.js';
|
||||
import '../../editor/contrib/bracketMatching/browser/bracketMatching.js';
|
||||
import '../../editor/contrib/caretOperations/browser/caretOperations.js';
|
||||
import '../../editor/contrib/caretOperations/browser/transpose.js';
|
||||
import '../../editor/contrib/clipboard/browser/clipboard.js';
|
||||
import '../../editor/contrib/codeAction/browser/codeActionContributions.js';
|
||||
import '../../editor/contrib/codelens/browser/codelensController.js';
|
||||
import '../../editor/contrib/colorPicker/browser/colorPickerContribution.js';
|
||||
import '../../editor/contrib/comment/browser/comment.js';
|
||||
import '../../editor/contrib/contextmenu/browser/contextmenu.js';
|
||||
import '../../editor/contrib/cursorUndo/browser/cursorUndo.js';
|
||||
import '../../editor/contrib/dnd/browser/dnd.js';
|
||||
import '../../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';
|
||||
import '../../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';
|
||||
import '../../editor/contrib/find/browser/findController.js';
|
||||
import '../../editor/contrib/folding/browser/folding.js';
|
||||
import '../../editor/contrib/fontZoom/browser/fontZoom.js';
|
||||
import '../../editor/contrib/format/browser/formatActions.js';
|
||||
import '../../editor/contrib/documentSymbols/browser/documentSymbols.js';
|
||||
import '../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';
|
||||
import '../../editor/contrib/inlineProgress/browser/inlineProgress.js';
|
||||
import '../../editor/contrib/gotoSymbol/browser/goToCommands.js';
|
||||
import '../../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';
|
||||
import '../../editor/contrib/gotoError/browser/gotoError.js';
|
||||
import '../../editor/contrib/gpu/browser/gpuActions.js';
|
||||
import '../../editor/contrib/hover/browser/hoverContribution.js';
|
||||
import '../../editor/contrib/indentation/browser/indentation.js';
|
||||
import '../../editor/contrib/inlayHints/browser/inlayHintsContribution.js';
|
||||
import '../../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';
|
||||
import '../../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';
|
||||
import '../../editor/contrib/lineSelection/browser/lineSelection.js';
|
||||
import '../../editor/contrib/linesOperations/browser/linesOperations.js';
|
||||
import '../../editor/contrib/linkedEditing/browser/linkedEditing.js';
|
||||
import '../../editor/contrib/links/browser/links.js';
|
||||
import '../../editor/contrib/longLinesHelper/browser/longLinesHelper.js';
|
||||
import '../../editor/contrib/middleScroll/browser/middleScroll.contribution.js';
|
||||
import '../../editor/contrib/multicursor/browser/multicursor.js';
|
||||
import '../../editor/contrib/parameterHints/browser/parameterHints.js';
|
||||
import '../../editor/contrib/placeholderText/browser/placeholderText.contribution.js';
|
||||
import '../../editor/contrib/rename/browser/rename.js';
|
||||
import '../../editor/contrib/sectionHeaders/browser/sectionHeaders.js';
|
||||
import '../../editor/contrib/semanticTokens/browser/documentSemanticTokens.js';
|
||||
import '../../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';
|
||||
import '../../editor/contrib/smartSelect/browser/smartSelect.js';
|
||||
import '../../editor/contrib/snippet/browser/snippetController2.js';
|
||||
import '../../editor/contrib/stickyScroll/browser/stickyScrollContribution.js';
|
||||
import '../../editor/contrib/suggest/browser/suggestController.js';
|
||||
import '../../editor/contrib/suggest/browser/suggestInlineCompletions.js';
|
||||
import '../../editor/contrib/tokenization/browser/tokenization.js';
|
||||
import '../../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';
|
||||
import '../../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';
|
||||
import '../../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';
|
||||
import '../../editor/contrib/wordHighlighter/browser/wordHighlighter.js';
|
||||
import '../../editor/contrib/wordOperations/browser/wordOperations.js';
|
||||
import '../../editor/contrib/wordPartOperations/browser/wordPartOperations.js';
|
||||
import '../../editor/contrib/readOnlyMessage/browser/contribution.js';
|
||||
import '../../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';
|
||||
import '../../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';
|
||||
import '../../editor/common/standaloneStrings.js';
|
||||
import '../../base/browser/ui/codicons/codicon/codicon.css';
|
||||
import '../../base/browser/ui/codicons/codicon/codicon-modifiers.css';
|
||||
import '../../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';
|
||||
import '../../editor/standalone/browser/inspectTokens/inspectTokens.js';
|
||||
import '../../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';
|
||||
import '../../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';
|
||||
import '../../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';
|
||||
import '../../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';
|
||||
import '../../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';
|
||||
import '../../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';
|
||||
import { languages } from '../../editor/editor.api2.js';
|
||||
|
||||
const conf = {
|
||||
comments: {
|
||||
lineComment: "#",
|
||||
blockComment: ["'''", "'''"]
|
||||
},
|
||||
brackets: [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"]
|
||||
],
|
||||
autoClosingPairs: [
|
||||
{ open: "{", close: "}" },
|
||||
{ open: "[", close: "]" },
|
||||
{ open: "(", close: ")" },
|
||||
{ open: '"', close: '"', notIn: ["string"] },
|
||||
{ open: "'", close: "'", notIn: ["string", "comment"] }
|
||||
],
|
||||
surroundingPairs: [
|
||||
{ open: "{", close: "}" },
|
||||
{ open: "[", close: "]" },
|
||||
{ open: "(", close: ")" },
|
||||
{ open: '"', close: '"' },
|
||||
{ open: "'", close: "'" }
|
||||
],
|
||||
onEnterRules: [
|
||||
{
|
||||
beforeText: new RegExp(
|
||||
"^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"
|
||||
),
|
||||
action: { indentAction: languages.IndentAction.Indent }
|
||||
}
|
||||
],
|
||||
folding: {
|
||||
offSide: true,
|
||||
markers: {
|
||||
start: new RegExp("^\\s*#region\\b"),
|
||||
end: new RegExp("^\\s*#endregion\\b")
|
||||
}
|
||||
}
|
||||
};
|
||||
const language = {
|
||||
defaultToken: "",
|
||||
tokenPostfix: ".python",
|
||||
keywords: [
|
||||
// This section is the result of running
|
||||
// `import keyword; for k in sorted(keyword.kwlist + keyword.softkwlist): print(" '" + k + "',")`
|
||||
// in a Python REPL,
|
||||
// though note that the output from Python 3 is not a strict superset of the
|
||||
// output from Python 2.
|
||||
"False",
|
||||
// promoted to keyword.kwlist in Python 3
|
||||
"None",
|
||||
// promoted to keyword.kwlist in Python 3
|
||||
"True",
|
||||
// promoted to keyword.kwlist in Python 3
|
||||
"_",
|
||||
// new in Python 3.10
|
||||
"and",
|
||||
"as",
|
||||
"assert",
|
||||
"async",
|
||||
// new in Python 3
|
||||
"await",
|
||||
// new in Python 3
|
||||
"break",
|
||||
"case",
|
||||
// new in Python 3.10
|
||||
"class",
|
||||
"continue",
|
||||
"def",
|
||||
"del",
|
||||
"elif",
|
||||
"else",
|
||||
"except",
|
||||
"exec",
|
||||
// Python 2, but not 3.
|
||||
"finally",
|
||||
"for",
|
||||
"from",
|
||||
"global",
|
||||
"if",
|
||||
"import",
|
||||
"in",
|
||||
"is",
|
||||
"lambda",
|
||||
"match",
|
||||
// new in Python 3.10
|
||||
"nonlocal",
|
||||
// new in Python 3
|
||||
"not",
|
||||
"or",
|
||||
"pass",
|
||||
"print",
|
||||
// Python 2, but not 3.
|
||||
"raise",
|
||||
"return",
|
||||
"try",
|
||||
"type",
|
||||
// new in Python 3.12
|
||||
"while",
|
||||
"with",
|
||||
"yield",
|
||||
"int",
|
||||
"float",
|
||||
"long",
|
||||
"complex",
|
||||
"hex",
|
||||
"abs",
|
||||
"all",
|
||||
"any",
|
||||
"apply",
|
||||
"basestring",
|
||||
"bin",
|
||||
"bool",
|
||||
"buffer",
|
||||
"bytearray",
|
||||
"callable",
|
||||
"chr",
|
||||
"classmethod",
|
||||
"cmp",
|
||||
"coerce",
|
||||
"compile",
|
||||
"complex",
|
||||
"delattr",
|
||||
"dict",
|
||||
"dir",
|
||||
"divmod",
|
||||
"enumerate",
|
||||
"eval",
|
||||
"execfile",
|
||||
"file",
|
||||
"filter",
|
||||
"format",
|
||||
"frozenset",
|
||||
"getattr",
|
||||
"globals",
|
||||
"hasattr",
|
||||
"hash",
|
||||
"help",
|
||||
"id",
|
||||
"input",
|
||||
"intern",
|
||||
"isinstance",
|
||||
"issubclass",
|
||||
"iter",
|
||||
"len",
|
||||
"locals",
|
||||
"list",
|
||||
"map",
|
||||
"max",
|
||||
"memoryview",
|
||||
"min",
|
||||
"next",
|
||||
"object",
|
||||
"oct",
|
||||
"open",
|
||||
"ord",
|
||||
"pow",
|
||||
"print",
|
||||
"property",
|
||||
"reversed",
|
||||
"range",
|
||||
"raw_input",
|
||||
"reduce",
|
||||
"reload",
|
||||
"repr",
|
||||
"reversed",
|
||||
"round",
|
||||
"self",
|
||||
"set",
|
||||
"setattr",
|
||||
"slice",
|
||||
"sorted",
|
||||
"staticmethod",
|
||||
"str",
|
||||
"sum",
|
||||
"super",
|
||||
"tuple",
|
||||
"type",
|
||||
"unichr",
|
||||
"unicode",
|
||||
"vars",
|
||||
"xrange",
|
||||
"zip",
|
||||
"__dict__",
|
||||
"__methods__",
|
||||
"__members__",
|
||||
"__class__",
|
||||
"__bases__",
|
||||
"__name__",
|
||||
"__mro__",
|
||||
"__subclasses__",
|
||||
"__init__",
|
||||
"__import__"
|
||||
],
|
||||
brackets: [
|
||||
{ open: "{", close: "}", token: "delimiter.curly" },
|
||||
{ open: "[", close: "]", token: "delimiter.bracket" },
|
||||
{ open: "(", close: ")", token: "delimiter.parenthesis" }
|
||||
],
|
||||
tokenizer: {
|
||||
root: [
|
||||
{ include: "@whitespace" },
|
||||
{ include: "@numbers" },
|
||||
{ include: "@strings" },
|
||||
[/[,:;]/, "delimiter"],
|
||||
[/[{}\[\]()]/, "@brackets"],
|
||||
[/@[a-zA-Z_]\w*/, "tag"],
|
||||
[
|
||||
/[a-zA-Z_]\w*/,
|
||||
{
|
||||
cases: {
|
||||
"@keywords": "keyword",
|
||||
"@default": "identifier"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
// Deal with white space, including single and multi-line comments
|
||||
whitespace: [
|
||||
[/\s+/, "white"],
|
||||
[/(^#.*$)/, "comment"],
|
||||
[/'''/, "string", "@endDocString"],
|
||||
[/"""/, "string", "@endDblDocString"]
|
||||
],
|
||||
endDocString: [
|
||||
[/[^']+/, "string"],
|
||||
[/\\'/, "string"],
|
||||
[/'''/, "string", "@popall"],
|
||||
[/'/, "string"]
|
||||
],
|
||||
endDblDocString: [
|
||||
[/[^"]+/, "string"],
|
||||
[/\\"/, "string"],
|
||||
[/"""/, "string", "@popall"],
|
||||
[/"/, "string"]
|
||||
],
|
||||
// Recognize hex, negatives, decimals, imaginaries, longs, and scientific notation
|
||||
numbers: [
|
||||
[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/, "number.hex"],
|
||||
[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/, "number"]
|
||||
],
|
||||
// Recognize strings, including those broken across lines with \ (but not without)
|
||||
strings: [
|
||||
[/'$/, "string.escape", "@popall"],
|
||||
[/f'{1,3}/, "string.escape", "@fStringBody"],
|
||||
[/'/, "string.escape", "@stringBody"],
|
||||
[/"$/, "string.escape", "@popall"],
|
||||
[/f"{1,3}/, "string.escape", "@fDblStringBody"],
|
||||
[/"/, "string.escape", "@dblStringBody"]
|
||||
],
|
||||
fStringBody: [
|
||||
[/[^\\'\{\}]+$/, "string", "@popall"],
|
||||
[/[^\\'\{\}]+/, "string"],
|
||||
[/\{[^\}':!=]+/, "identifier", "@fStringDetail"],
|
||||
[/\\./, "string"],
|
||||
[/'/, "string.escape", "@popall"],
|
||||
[/\\$/, "string"]
|
||||
],
|
||||
stringBody: [
|
||||
[/[^\\']+$/, "string", "@popall"],
|
||||
[/[^\\']+/, "string"],
|
||||
[/\\./, "string"],
|
||||
[/'/, "string.escape", "@popall"],
|
||||
[/\\$/, "string"]
|
||||
],
|
||||
fDblStringBody: [
|
||||
[/[^\\"\{\}]+$/, "string", "@popall"],
|
||||
[/[^\\"\{\}]+/, "string"],
|
||||
[/\{[^\}':!=]+/, "identifier", "@fStringDetail"],
|
||||
[/\\./, "string"],
|
||||
[/"/, "string.escape", "@popall"],
|
||||
[/\\$/, "string"]
|
||||
],
|
||||
dblStringBody: [
|
||||
[/[^\\"]+$/, "string", "@popall"],
|
||||
[/[^\\"]+/, "string"],
|
||||
[/\\./, "string"],
|
||||
[/"/, "string.escape", "@popall"],
|
||||
[/\\$/, "string"]
|
||||
],
|
||||
fStringDetail: [
|
||||
[/[:][^}]+/, "string"],
|
||||
[/[!][ars]/, "string"],
|
||||
// only !a, !r, !s are supported by f-strings: https://docs.python.org/3/tutorial/inputoutput.html#formatted-string-literals
|
||||
[/=/, "string"],
|
||||
[/\}/, "identifier", "@pop"]
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
export { conf, language };
|
||||
Reference in New Issue
Block a user