Remove latex-utensils latex parser, leave bib one

This commit is contained in:
James-Yu 2023-06-20 11:31:27 +08:00
parent 36ad48f7aa
commit bc5b6c8ef6
5 changed files with 22 additions and 1883 deletions

2
.vscode/launch.json vendored
View File

@ -33,7 +33,7 @@
"preLaunchTask": "task-watch-all",
"env": {
"LATEXWORKSHOP_CI": "1",
"LATEXWORKSHOP_SUITE": "07"
"LATEXWORKSHOP_SUITE": ""
}
},
{

1837
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -2561,8 +2561,6 @@
"micromatch": "4.0.5",
"pdfjs-dist": "3.6.172",
"tmp": "0.2.1",
"unified-latex": "^1.1.3",
"workerpool": "6.3.1",
"ws": "8.11.0"
},
"devDependencies": {

View File

@ -1,58 +1,7 @@
import type { latexParser, bibtexParser } from 'latex-utensils'
import * as path from 'path'
import * as workerpool from 'workerpool'
import type { Proxy } from 'workerpool'
import type { ISyntaxWorker } from './parserlib/syntax'
import { bibtexParser } from 'latex-utensils'
import { bibtexLogParser } from './parserlib/bibtexlog'
import { biberLogParser } from './parserlib/biberlog'
import { latexLogParser } from './parserlib/latexlog'
import { stripComments } from '../utils/utils'
import { getLogger } from './logger'
const logger = getLogger('Parser')
const pool: workerpool.WorkerPool = workerpool.pool(
path.join(__dirname, './parserlib/syntax.js'),
{ minWorkers: 1, maxWorkers: 100, workerType: 'process' }
)
const proxy: workerpool.Promise<Proxy<ISyntaxWorker>> = pool.proxy<ISyntaxWorker>()
function dispose() {
return {
dispose: async () => { await pool.terminate(true) }
}
}
/**
* Parse a LaTeX file.
*
* @param s The content of a LaTeX file to be parsed.
* @param options
* @return undefined if parsing fails
*/
async function parseLatex(s: string, options?: latexParser.ParserOptions): Promise<latexParser.LatexAst | undefined> {
return (await proxy).parseLatex(s, Object.assign(options || {}, { timeout: 3000 }))
.catch(err => {
logger.logUtensilsError('Error in parsing LaTeX AST', err)
return undefined
})
}
async function parseLatexPreamble(s: string): Promise<latexParser.AstPreamble | undefined> {
return (await proxy).parseLatexPreamble(s, { timeout: 500 })
.catch(err => {
logger.logUtensilsError('Error in parsing LaTeX Preamble AST', err)
return undefined
})
}
async function parseBibtex(s: string, options?: bibtexParser.ParserOptions): Promise<bibtexParser.BibtexAst | undefined> {
return (await proxy).parseBibtex(stripComments(s), Object.assign(options || {}, { timeout: 30000 }))
.catch(err => {
logger.logUtensilsError('Error in parsing BibTeX AST', err)
return undefined
})
}
// Notice that 'Output written on filename.pdf' isn't output in draft mode.
// https://github.com/James-Yu/LaTeX-Workshop/issues/2893#issuecomment-936312853
@ -199,13 +148,14 @@ function resetUnifiedParser(): UnifiedParser {
return unifiedParser
}
function parseBibtex(s: string, options?: bibtexParser.ParserOptions): bibtexParser.BibtexAst | undefined {
return bibtexParser.parse(s, options)
}
export const parser = {
parseLatex,
parseLatexPreamble,
parseBibtex,
parseLog,
unifiedParse,
unifiedArgsParse,
resetUnifiedParser,
dispose
resetUnifiedParser
}

View File

@ -14,7 +14,6 @@ import { Locator } from './components/locator'
import { LwFileSystem } from './components/lwfs'
import { Manager } from './components/manager'
import { MathPreviewPanel } from './components/mathpreviewpanel'
import { parser } from './components/parser'
import { Section } from './components/section'
import { Server } from './components/server'
import { SnippetView } from './components/snippetview'
@ -83,7 +82,6 @@ export function init(extensionContext: vscode.ExtensionContext) {
dispose: () => {
cacher.reset()
server.dispose()
parser.dispose()
MathJaxPool.dispose()
}
}