mirror of
https://github.com/James-Yu/LaTeX-Workshop.git
synced 2024-10-04 23:27:20 +03:00
Load mathjax-node async
This commit is contained in:
parent
13b4639b24
commit
676cd4bbee
16
src/main.ts
16
src/main.ts
@ -1,7 +1,6 @@
|
||||
import * as vscode from 'vscode'
|
||||
import * as path from 'path'
|
||||
import * as fs from 'fs'
|
||||
import * as mj from 'mathjax-node'
|
||||
|
||||
import {Commander} from './commander'
|
||||
import {LaTeXCommander} from './components/commander'
|
||||
@ -272,21 +271,6 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
mj.config({ MathJax: {
|
||||
jax: ['input/TeX', 'output/SVG'],
|
||||
extensions: ['tex2jax.js', 'MathMenu.js', 'MathZoom.js'],
|
||||
showMathMenu: false,
|
||||
showProcessingMessages: false,
|
||||
messageStyle: 'none',
|
||||
SVG: {
|
||||
useGlobalCache: false
|
||||
},
|
||||
TeX: {
|
||||
extensions: ['AMSmath.js', 'AMSsymbols.js', 'noUndefined.js', 'autoload-all.js']
|
||||
}
|
||||
} })
|
||||
mj.start()
|
||||
}
|
||||
|
||||
export class Extension {
|
||||
|
@ -1,11 +1,12 @@
|
||||
import * as vscode from 'vscode'
|
||||
import * as envpair from '../components/envpair'
|
||||
import * as mj from 'mathjax-node'
|
||||
import {Extension} from '../main'
|
||||
import {tokenizer} from './tokenizer'
|
||||
|
||||
export class HoverProvider implements vscode.HoverProvider {
|
||||
extension: Extension
|
||||
jaxInitialized = false
|
||||
mj
|
||||
|
||||
constructor(extension: Extension) {
|
||||
this.extension = extension
|
||||
@ -19,9 +20,33 @@ export class HoverProvider implements vscode.HoverProvider {
|
||||
if (hov) {
|
||||
const tr = this.findHoverOnTex(document, position)
|
||||
if (tr) {
|
||||
let promise
|
||||
if (!this.jaxInitialized) {
|
||||
promise = import('mathjax-node').then(mj => {
|
||||
this.mj = mj
|
||||
mj.config({ MathJax: {
|
||||
jax: ['input/TeX', 'output/SVG'],
|
||||
extensions: ['tex2jax.js', 'MathZoom.js'],
|
||||
showMathMenu: false,
|
||||
showProcessingMessages: false,
|
||||
messageStyle: 'none',
|
||||
SVG: {
|
||||
useGlobalCache: false
|
||||
},
|
||||
TeX: {
|
||||
extensions: ['AMSmath.js', 'AMSsymbols.js', 'noUndefined.js', 'autoload-all.js']
|
||||
}
|
||||
} })
|
||||
mj.start()
|
||||
this.jaxInitialized = true
|
||||
})
|
||||
} else {
|
||||
promise = Promise.resolve()
|
||||
}
|
||||
promise.then(() => {
|
||||
const scale = configuration.get('hoverPreview.scale') as number
|
||||
const [tex, range] = tr
|
||||
mj.typeset({
|
||||
this.mj.typeset({
|
||||
math: tex,
|
||||
format: 'TeX',
|
||||
svg: true,
|
||||
@ -29,6 +54,7 @@ export class HoverProvider implements vscode.HoverProvider {
|
||||
.then(xml => this.fillBackground(xml))
|
||||
.then(xml => this.svgToDataUrl(xml))
|
||||
.then(md => resolve( new vscode.Hover(new vscode.MarkdownString( `![equation](${md})`), range ) ))
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user