diff --git a/package-lock.json b/package-lock.json index cba755c4..66a5839c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,11 +5,11 @@ "requires": true, "dependencies": { "@neilsustc/markdown-it-katex": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@neilsustc/markdown-it-katex/-/markdown-it-katex-0.5.0.tgz", - "integrity": "sha512-H84Ulr20/htEwxyyrnjnWliWflUdziTp2aoKiNpYsNz7yfwj/sm7ZohymibWUk52GNVsyRIn5QaK7pFgLwbcOA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@neilsustc/markdown-it-katex/-/markdown-it-katex-0.6.1.tgz", + "integrity": "sha512-GXMFn2Hgfj4ZU2C5fhk+1wDZbs2ftRiJGfK1ua+SZ+0G+3EIcbxpmpezT81dQywPSpinU1a15bLba+w3419lEw==", "requires": { - "katex": "^0.11.1" + "katex": "^0.12.0" } }, "@types/highlight.js": { @@ -1282,6 +1282,7 @@ "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", "is-regex": "^1.1.1", "object-inspect": "^1.8.0", "object-keys": "^1.1.1", @@ -1296,8 +1297,30 @@ "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", "requires": { "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } } } @@ -2310,6 +2333,11 @@ "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", "dev": true }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2437,9 +2465,9 @@ } }, "katex": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.11.1.tgz", - "integrity": "sha512-5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.12.0.tgz", + "integrity": "sha512-y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg==", "requires": { "commander": "^2.19.0" } diff --git a/package.json b/package.json index 27859ba3..4a5ebe43 100644 --- a/package.json +++ b/package.json @@ -446,7 +446,7 @@ "test-compile": "tsc -p ./" }, "dependencies": { - "@neilsustc/markdown-it-katex": "^0.5.0", + "@neilsustc/markdown-it-katex": "^0.6.1", "entities": "^2.0.3", "grapheme-splitter": "^1.0.4", "highlight.js": "^10.4.1", diff --git a/src/completion.ts b/src/completion.ts index 21257eb1..808114e1 100644 --- a/src/completion.ts +++ b/src/completion.ts @@ -35,12 +35,13 @@ class MdCompletionItemProvider implements CompletionItemProvider { ]; delimiters0 = [ 'lparen', 'rparen', 'lceil', 'rceil', 'uparrow', - 'lbrack', 'rbrack', 'lfloor', 'rfloor', 'downarrow', 'updownarrow', + 'lbrack', 'rbrack', 'lfloor', 'rfloor', 'downarrow', + 'lbrace', 'rbrace', 'lmoustache', 'rmoustache', 'updownarrow', 'langle', 'rangle', 'lgroup', 'rgroup', 'Uparrow', 'vert', 'ulcorner', 'urcorner', 'Downarrow', 'Vert', 'llcorner', 'lrcorner', 'Updownarrow', 'lvert', 'rvert', 'lVert', 'rVert', 'backslash', - 'lang', 'rang', 'lt', 'gt' + 'lang', 'rang', 'lt', 'gt', 'llbracket', 'rrbracket', 'lBrace', 'rBrace' ]; delimeterSizing0 = [ 'left', 'big', 'bigl', 'bigm', 'bigr', @@ -53,8 +54,8 @@ class MdCompletionItemProvider implements CompletionItemProvider { 'Epsilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'Omicron', 'Pi', - 'Sigma', 'Tau', 'Upsilon', 'Phi', - 'Chi', 'Psi', 'Omega', + 'Rho', 'Sigma', 'Tau', 'Upsilon', + 'Phi', 'Chi', 'Psi', 'Omega', 'varGamma', 'varDelta', 'varTheta', 'varLambda', 'varXi', 'varPi', 'varSigma', 'varUpsilon', 'varPhi', 'varPsi', 'varOmega', @@ -87,6 +88,7 @@ class MdCompletionItemProvider implements CompletionItemProvider { 'tag', 'tag*' ]; verticalLayout0 = ['atop'] + verticalLayout1 = ['substack'] verticalLayout2 = ['stackrel', 'overset', 'underset', 'raisebox']; overlap1 = ['mathllap', 'mathrlap', 'mathclap', 'llap', 'rlap', 'clap', 'smash']; spacing0 = [ @@ -107,6 +109,13 @@ class MdCompletionItemProvider implements CompletionItemProvider { 'isin', 'lor', 'leftrightarrow', 'iff', 'notin', 'ni', 'notni', 'neg', 'lnot' ]; + macros0 = [ + 'def', 'gdef', 'edef', 'xdef', 'let', 'futurelet', 'global', + 'newcommand', 'renewcommand', 'providecommand', + 'long', 'char', 'mathchoice', 'TextOrMath', + '@ifstar', '@ifnextchar', '@firstoftwo', '@secondoftwo', + 'relax', 'expandafter', 'noexpand' + ] bigOperators0 = [ 'sum', 'prod', 'bigotimes', 'bigvee', 'int', 'coprod', 'bigoplus', 'bigwedge', @@ -247,6 +256,7 @@ class MdCompletionItemProvider implements CompletionItemProvider { 'xtofrom', 'xmapsto', 'xlongequal' ]; + braketNotation1 = ['bra', 'Bra', 'ket', 'Ket', 'braket'] classAssignment1 = [ 'mathbin', 'mathclose', 'mathinner', 'mathop', 'mathopen', 'mathord', 'mathpunct', 'mathrel' @@ -306,8 +316,9 @@ class MdCompletionItemProvider implements CompletionItemProvider { 'circledR', 'diamondsuit', 'heartsuit', 'diamonds', 'hearts', 'circledS', 'spadesuit', 'spades', - 'maltese' + 'maltese', 'minuso' ]; + debugging0 = ['message', 'errmessage', 'show'] mathCompletions: CompletionItem[]; @@ -320,12 +331,13 @@ class MdCompletionItemProvider implements CompletionItemProvider { ...this.delimiters0, ...this.delimeterSizing0, ...this.greekLetters0, ...this.otherLetters0, ...this.spacing0, ...this.verticalLayout0, - ...this.logicAndSetTheory0, ...this.bigOperators0, + ...this.logicAndSetTheory0, ...this.macros0, ...this.bigOperators0, ...this.binaryOperators0, ...this.binomialCoefficients0, ...this.fractions0, ...this.mathOperators0, ...this.relations0, ...this.negatedRelations0, ...this.arrows0, ...this.font0, ...this.size0, - ...this.style0, ...this.symbolsAndPunctuation0 + ...this.style0, ...this.symbolsAndPunctuation0, + ...this.debugging0 ] )).map(cmd => { let item = new CompletionItem('\\' + cmd, CompletionItemKind.Function); @@ -336,10 +348,10 @@ class MdCompletionItemProvider implements CompletionItemProvider { let c2 = Array.from(new Set( [ ...this.accents1, ...this.annotation1, - ...this.overlap1, ...this.spacing1, + ...this.verticalLayout1, ...this.overlap1, ...this.spacing1, ...this.mathOperators1, ...this.sqrt1, ...this.extensibleArrows1, ...this.font1, - ...this.classAssignment1 + ...this.braketNotation1, ...this.classAssignment1 ] )).map(cmd => { let item = new CompletionItem('\\' + cmd, CompletionItemKind.Function); @@ -358,7 +370,7 @@ class MdCompletionItemProvider implements CompletionItemProvider { return item; }); let envSnippet = new CompletionItem('\\begin', CompletionItemKind.Snippet); - envSnippet.insertText = new SnippetString('begin{${1|aligned,alignedat,array,bmatrix,Bmatrix,cases,darray,dcases,gathered,matrix,pmatrix,vmatrix,Vmatrix|}}\n\t$2\n\\end{$1}'); + envSnippet.insertText = new SnippetString('begin{${1|aligned,alignedat,array,bmatrix,Bmatrix,cases,darray,dcases,gathered,matrix,pmatrix,rcases,smallmatrix,vmatrix,Vmatrix|}}\n\t$2\n\\end{$1}'); // Pretend to support multi-workspacefolders let resource = null;