diff --git a/src/commander.ts b/src/commander.ts index 4cf8305bc..9a5aab318 100644 --- a/src/commander.ts +++ b/src/commander.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode' import * as opn from 'opn' -import {Extension} from './main' +import { Extension } from './main' export class Commander { extension: Extension @@ -45,7 +45,7 @@ export class Commander { vscode.workspace.openTextDocument(filePath).then((doc) => { vscode.window.showTextDocument(doc).then((_) => { //editor.selection = new vscode.Selection(new vscode.Position(lineNumber,0), new vscode.Position(lineNumber,0)) - vscode.commands.executeCommand("revealLine", {lineNumber, at: 'center'}) + vscode.commands.executeCommand('revealLine', {lineNumber, at: 'center'}) }) }) diff --git a/src/components/builder.ts b/src/components/builder.ts index c7a599e07..b4f611722 100644 --- a/src/components/builder.ts +++ b/src/components/builder.ts @@ -3,7 +3,7 @@ import * as path from 'path' import * as fs from 'fs' import * as cp from 'child_process' -import {Extension} from '../main' +import { Extension } from '../main' export class Builder { extension: Extension diff --git a/src/components/cleaner.ts b/src/components/cleaner.ts index d5c8c3c89..a36169de9 100644 --- a/src/components/cleaner.ts +++ b/src/components/cleaner.ts @@ -3,7 +3,7 @@ import * as path from 'path' import * as fs from 'fs' import * as glob from 'glob' -import {Extension} from '../main' +import { Extension } from '../main' export class Cleaner { extension: Extension diff --git a/src/components/counter.ts b/src/components/counter.ts index 7590748e7..ee143d69e 100644 --- a/src/components/counter.ts +++ b/src/components/counter.ts @@ -2,7 +2,7 @@ import * as vscode from 'vscode' import * as path from 'path' import * as cp from 'child_process' -import {Extension} from '../main' +import { Extension } from '../main' export class Counter { extension: Extension diff --git a/src/components/linter.ts b/src/components/linter.ts index e427923c2..137790766 100644 --- a/src/components/linter.ts +++ b/src/components/linter.ts @@ -1,9 +1,9 @@ import * as vscode from 'vscode' import * as path from 'path' -import {ChildProcess, spawn, SpawnOptions} from 'child_process' -import {EOL} from 'os' +import { ChildProcess, spawn, SpawnOptions } from 'child_process' +import { EOL } from 'os' -import {Extension} from '../main' +import { Extension } from '../main' export class Linter { extension: Extension diff --git a/src/components/locator.ts b/src/components/locator.ts index eef3dd6c9..474b299b8 100644 --- a/src/components/locator.ts +++ b/src/components/locator.ts @@ -2,7 +2,7 @@ import * as vscode from 'vscode' import * as path from 'path' import * as cp from 'child_process' -import {Extension} from '../main' +import { Extension } from '../main' export interface SyncTeXRecord { input: string @@ -64,7 +64,7 @@ export class Locator { } const configuration = vscode.workspace.getConfiguration('latex-workshop') const pdfFile = this.extension.manager.tex2pdf(this.extension.manager.rootFile) - const args = ['view', '-i', `${position.line + 1}:${position.character + 1}:${filePath}`, "-o", pdfFile] + const args = ['view', '-i', `${position.line + 1}:${position.character + 1}:${filePath}`, '-o', pdfFile] this.extension.logger.addLogMessage(`Executing synctex with args ${args}`) const proc = cp.spawn(configuration.get('synctex.path') as string, args) @@ -142,7 +142,7 @@ export class Locator { } vscode.window.showTextDocument(doc, viewColumn).then((editor) => { editor.selection = new vscode.Selection(pos, pos) - vscode.commands.executeCommand("revealLine", {lineNumber: row, at: 'center'}) + vscode.commands.executeCommand('revealLine', {lineNumber: row, at: 'center'}) }) }) } diff --git a/src/components/logger.ts b/src/components/logger.ts index ce0604022..71d329963 100644 --- a/src/components/logger.ts +++ b/src/components/logger.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode' -import {Extension} from '../main' +import { Extension } from '../main' export class Logger { extension: Extension diff --git a/src/components/manager.ts b/src/components/manager.ts index 45a6cdf62..26d368637 100644 --- a/src/components/manager.ts +++ b/src/components/manager.ts @@ -3,7 +3,7 @@ import * as path from 'path' import * as fs from 'fs' import * as chokidar from 'chokidar' -import {Extension} from '../main' +import { Extension } from '../main' export class Manager { extension: Extension @@ -155,16 +155,16 @@ export class Manager { this.extension.logger.addLogMessage(`Instatiating new file watcher for ${this.rootFile}`) this.fileWatcher = chokidar.watch(this.rootFile) this.watched.push(this.rootFile) - this.fileWatcher.on('change', (path: string) => { - this.extension.logger.addLogMessage(`File watcher: responding to change in ${path}`) - this.findDependentFiles(path) + this.fileWatcher.on('change', (filePath: string) => { + this.extension.logger.addLogMessage(`File watcher: responding to change in ${filePath}`) + this.findDependentFiles(filePath) }) - this.fileWatcher.on('unlink', (path: string) => { - this.extension.logger.addLogMessage(`File watcher: ${path} deleted.`) - this.fileWatcher.unwatch(path) - this.watched.splice(this.watched.indexOf(path), 1) - if (path === this.rootFile) { - this.extension.logger.addLogMessage(`Deleted ${path} was root - triggering root search`) + this.fileWatcher.on('unlink', (filePath: string) => { + this.extension.logger.addLogMessage(`File watcher: ${filePath} deleted.`) + this.fileWatcher.unwatch(filePath) + this.watched.splice(this.watched.indexOf(filePath), 1) + if (filePath === this.rootFile) { + this.extension.logger.addLogMessage(`Deleted ${filePath} was root - triggering root search`) this.findRoot() } }) @@ -244,15 +244,15 @@ export class Manager { if (this.bibWatcher === undefined) { this.extension.logger.addLogMessage(`Creating file watcher for .bib files.`) this.bibWatcher = chokidar.watch(bibPath) - this.bibWatcher.on('change', (path: string) => { - this.extension.logger.addLogMessage(`Bib file watcher - responding to change in ${path}`) - this.extension.completer.citation.parseBibFile(path) + this.bibWatcher.on('change', (filePath: string) => { + this.extension.logger.addLogMessage(`Bib file watcher - responding to change in ${filePath}`) + this.extension.completer.citation.parseBibFile(filePath) }) - this.bibWatcher.on('unlink', (path: string) => { - this.extension.logger.addLogMessage(`Bib file watcher: ${path} deleted.`) - this.extension.completer.citation.forgetParsedBibItems(path) - this.bibWatcher.unwatch(path) - this.watched.splice(this.watched.indexOf(path), 1) + this.bibWatcher.on('unlink', (filePath: string) => { + this.extension.logger.addLogMessage(`Bib file watcher: ${filePath} deleted.`) + this.extension.completer.citation.forgetParsedBibItems(filePath) + this.bibWatcher.unwatch(filePath) + this.watched.splice(this.watched.indexOf(filePath), 1) }) this.extension.completer.citation.parseBibFile(bibPath) } else if (this.watched.indexOf(bibPath) < 0) { diff --git a/src/components/parser.ts b/src/components/parser.ts index 436b1af22..bb0b8811c 100644 --- a/src/components/parser.ts +++ b/src/components/parser.ts @@ -104,9 +104,9 @@ export class Parser { const filename = path.resolve(this.extension.manager.rootDir, fileStack[fileStack.length - 1]) // append the read line, since we have a corresponding result in the making if (searchesEmptyLine) { - currentResult.text = currentResult.text + " " + line + currentResult.text = currentResult.text + ' ' + line if (line.trim() === '') { - currentResult.text = currentResult.text + "\n" + currentResult.text = currentResult.text + '\n' searchesEmptyLine = false } continue diff --git a/src/components/server.ts b/src/components/server.ts index d23230a16..2d861732e 100644 --- a/src/components/server.ts +++ b/src/components/server.ts @@ -3,7 +3,7 @@ import * as ws from 'ws' import * as fs from 'fs' import * as path from 'path' -import {Extension} from '../main' +import { Extension } from '../main' export class Server { extension: Extension @@ -14,7 +14,7 @@ export class Server { constructor(extension: Extension) { this.extension = extension this.httpServer = http.createServer((request, response) => this.handler(request, response)) - this.httpServer.listen(0, "localhost", undefined, (err: Error) => { + this.httpServer.listen(0, 'localhost', undefined, (err: Error) => { if (err) { this.extension.logger.addLogMessage(`Error creating LaTeX Workshop http server: ${err}.`) } else { @@ -24,9 +24,9 @@ export class Server { } }) this.wsServer = ws.createServer({server: this.httpServer}) - this.wsServer.on("connection", (ws) => { - ws.on("message", (msg) => this.extension.viewer.handler(ws, msg)) - ws.on("close", () => this.extension.viewer.handler(ws, '{"type": "close"}')) + this.wsServer.on('connection', (wsServer) => { + wsServer.on('message', (msg) => this.extension.viewer.handler(wsServer, msg)) + wsServer.on('close', () => this.extension.viewer.handler(wsServer, '{"type": "close"}')) }) this.extension.logger.addLogMessage(`Creating LaTeX Workshop http and websocket server.`) } @@ -38,16 +38,16 @@ export class Server { request.url = decodeURIComponent(decodeURIComponent(request.url)) if (request.url.indexOf('pdf:') >= 0 && request.url.indexOf('viewer.html') < 0) { // The second backslash was encoded as %2F, and the first one is prepended by request - const fileName = request.url.replace('//pdf:', '') + const pdfFileName = request.url.replace('//pdf:', '') try { - const pdfSize = fs.statSync(fileName).size + const pdfSize = fs.statSync(pdfFileName).size response.writeHead(200, {'Content-Type': 'application/pdf', 'Content-Length': pdfSize}) - fs.createReadStream(fileName).pipe(response) - this.extension.logger.addLogMessage(`Preview PDF file: ${fileName}`) + fs.createReadStream(pdfFileName).pipe(response) + this.extension.logger.addLogMessage(`Preview PDF file: ${pdfFileName}`) } catch (e) { response.writeHead(404) response.end() - this.extension.logger.addLogMessage(`Error reading PDF file: ${fileName}`) + this.extension.logger.addLogMessage(`Error reading PDF file: ${pdfFileName}`) } return } diff --git a/src/components/viewer.ts b/src/components/viewer.ts index 2c9464815..d4fe8fbb4 100644 --- a/src/components/viewer.ts +++ b/src/components/viewer.ts @@ -4,8 +4,8 @@ import * as path from 'path' import * as opn from 'opn' import * as WebSocket from 'ws' -import {Extension} from '../main' -import {SyncTeXRecord} from './locator' +import { Extension } from '../main' +import { SyncTeXRecord } from './locator' interface Position {} @@ -32,7 +32,7 @@ export class Viewer { (type === undefined || client.type === type) && client.ws !== undefined) { this.extension.logger.addLogMessage(`Refresh PDF viewer for ${pdfFile}`) - client.ws.send(JSON.stringify({type: "refresh"})) + client.ws.send(JSON.stringify({type: 'refresh'})) return true } this.extension.logger.addLogMessage(`No PDF viewer connected for ${pdfFile}`) @@ -97,7 +97,7 @@ export class Viewer { client.ws.close() } this.clients[pdfFile.toLocaleUpperCase()] = {type: 'tab'} - vscode.commands.executeCommand("vscode.previewHtml", uri, column, path.basename(pdfFile)) + vscode.commands.executeCommand('vscode.previewHtml', uri, column, path.basename(pdfFile)) this.extension.logger.addLogMessage(`Open PDF tab for ${pdfFile}`) this.extension.logger.displayStatus('repo', 'statusBar.foreground', `Open PDF tab for ${path.basename(pdfFile)}.`) } @@ -141,7 +141,7 @@ export class Viewer { } else { const configuration = vscode.workspace.getConfiguration('latex-workshop') client.ws.send(JSON.stringify({ - type: "params", + type: 'params', scale: configuration.get('view.pdf.zoom'), hand: configuration.get('view.pdf.hand') })) @@ -164,7 +164,7 @@ export class Viewer { return } if (client.ws !== undefined) { - client.ws.send(JSON.stringify({type: "synctex", data: record})) + client.ws.send(JSON.stringify({type: 'synctex', data: record})) this.extension.logger.addLogMessage(`Try to synctex ${pdfFile}`) } } diff --git a/src/main.ts b/src/main.ts index 6a0863cf6..a3ed38cf1 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,25 +3,25 @@ import * as path from 'path' import * as fs from 'fs' import * as opn from 'opn' -import {Commander} from './commander' -import {Logger} from './components/logger' -import {Manager} from './components/manager' -import {Builder} from './components/builder' -import {Viewer, PDFProvider} from './components/viewer' -import {Server} from './components/server' -import {Locator} from './components/locator' -import {Parser} from './components/parser' -import {Linter} from './components/linter' -import {Cleaner} from './components/cleaner' -import {Counter} from './components/counter' +import { Commander } from './commander' +import { Logger } from './components/logger' +import { Manager } from './components/manager' +import { Builder } from './components/builder' +import { Viewer, PDFProvider } from './components/viewer' +import { Server } from './components/server' +import { Locator } from './components/locator' +import { Parser } from './components/parser' +import { Linter } from './components/linter' +import { Cleaner } from './components/cleaner' +import { Counter } from './components/counter' -import {Completer} from './providers/completion' -import {CodeActions} from './providers/codeactions' -import {SectionNodeProvider} from './providers/outline' -import {HoverProvider} from './providers/hover' -import {DocSymbolProvider} from './providers/docsymbol' -import {ProjectSymbolProvider} from './providers/projectsymbol' -import {DefinitionProvider} from './providers/definition' +import { Completer } from './providers/completion' +import { CodeActions } from './providers/codeactions' +import { SectionNodeProvider } from './providers/outline' +import { HoverProvider } from './providers/hover' +import { DocSymbolProvider } from './providers/docsymbol' +import { ProjectSymbolProvider } from './providers/projectsymbol' +import { DefinitionProvider } from './providers/definition' function lintRootFileIfEnabled(extension: Extension) { const configuration = vscode.workspace.getConfiguration('latex-workshop') diff --git a/src/providers/codeactions.ts b/src/providers/codeactions.ts index 21c430223..5c269609a 100644 --- a/src/providers/codeactions.ts +++ b/src/providers/codeactions.ts @@ -3,24 +3,24 @@ import * as vs from 'vscode' import { Extension } from '../main' const CODE_TO_ACTION_STRING: {[key: number]: string} = { - 1: "Terminate command with empty statement", - 2: "Convert to non-breaking space (~)", - 4: "Remove italic correction \\/ (not in italic buffer)", - 5: "Remove extraneous italic correction(s)", - 6: "Add italic correction (\\/)", - 11: "Fix ellipsis", - 12: "Add interword space (\\ )", - 13: "Add intersentence space (\\@)", + 1: 'Terminate command with empty statement', + 2: 'Convert to non-breaking space (~)', + 4: 'Remove italic correction \\/ (not in italic buffer)', + 5: 'Remove extraneous italic correction(s)', + 6: 'Add italic correction (\\/)', + 11: 'Fix ellipsis', + 12: 'Add interword space (\\ )', + 13: 'Add intersentence space (\\@)', 18: "Replace with ` or '", - 32: "Replace with `", + 32: 'Replace with `', 33: "Replace with '", - 24: "Remove extraneous space", - 28: "Remove incorrect \\/", - 26: "Remove extraneous space", + 24: 'Remove extraneous space', + 28: 'Remove incorrect \\/', + 26: 'Remove extraneous space', 34: "Replace with ` or '", - 35: "Use suggested alternative", - 39: "Remove extraneous space", - 42: "Remove extraneous space" + 35: 'Use suggested alternative', + 39: 'Remove extraneous space', + 42: 'Remove extraneous space' } function replaceWhitespaceOnLineBefore(document: vs.TextDocument, position: vs.Position, replaceWith: string) { @@ -98,7 +98,7 @@ export class CodeActions { case 5: case 28: // In all these cases just clear what ChxTeX highlighted. - replaceRangeWithString(document, range, "") + replaceRangeWithString(document, range, '') break case 1: replaceWhitespaceOnLineBefore(document, range.end.translate(0, -1), '{}') @@ -115,7 +115,7 @@ export class CodeActions { if (!regexResult) { break } - fixString = regexResult[0] + " " + fixString = regexResult[0] + ' ' replaceRangeWithString(document, range, fixString) break case 12: @@ -126,20 +126,20 @@ export class CodeActions { break case 18: if (isOpeningQuote(document, range)) { - replaceRangeWithRepeatedString(document, range, "``") + replaceRangeWithRepeatedString(document, range, '``') } else { replaceRangeWithRepeatedString(document, range, "''") } break case 32: - replaceRangeWithRepeatedString(document, range, "`") + replaceRangeWithRepeatedString(document, range, '`') break case 33: replaceRangeWithRepeatedString(document, range, "'") break case 34: if (isOpeningQuote(document, range)) { - replaceRangeWithRepeatedString(document, range, "`") + replaceRangeWithRepeatedString(document, range, '`') } else { replaceRangeWithRepeatedString(document, range, "'") } diff --git a/src/providers/completer/citation.ts b/src/providers/completer/citation.ts index 68e7763f5..27d40ef2c 100644 --- a/src/providers/completer/citation.ts +++ b/src/providers/completer/citation.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode' import * as fs from 'fs' -import {Extension} from '../../main' +import { Extension } from '../../main' const bibEntries = ['article', 'book', 'bookinbook', 'booklet', 'collection', 'conference', 'inbook', 'incollection', 'inproceedings', 'inreference', 'manual', 'mastersthesis', 'misc', @@ -82,7 +82,7 @@ export class Citation { }) const pickItems: vscode.QuickPickItem[] = items.map(item => { return { - label: item.title ? item.title as string : "", + label: item.title ? item.title as string : '', description: `${item.key}`, detail: `Authors: ${item.author ? item.author : 'Unknown'}, publication: ${item.journal ? item.journal : (item.publisher ? item.publisher : 'Unknown')}` } diff --git a/src/providers/completer/command.ts b/src/providers/completer/command.ts index a48c15047..387a060c4 100644 --- a/src/providers/completer/command.ts +++ b/src/providers/completer/command.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode' import * as fs from 'fs' -import {Extension} from '../../main' +import { Extension } from '../../main' export class Command { extension: Extension diff --git a/src/providers/completer/environment.ts b/src/providers/completer/environment.ts index d37a32533..3f7647c0f 100644 --- a/src/providers/completer/environment.ts +++ b/src/providers/completer/environment.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode' -import {Extension} from '../../main' +import { Extension } from '../../main' export class Environment { extension: Extension diff --git a/src/providers/completer/reference.ts b/src/providers/completer/reference.ts index 63389bb29..3475ad895 100644 --- a/src/providers/completer/reference.ts +++ b/src/providers/completer/reference.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode' import * as fs from 'fs' -import {Extension} from '../../main' +import { Extension } from '../../main' export class Reference { extension: Extension diff --git a/src/providers/completion.ts b/src/providers/completion.ts index da342377e..8d051c9b8 100644 --- a/src/providers/completion.ts +++ b/src/providers/completion.ts @@ -1,11 +1,11 @@ import * as vscode from 'vscode' import * as fs from 'fs' -import {Extension} from '../main' -import {Citation} from './completer/citation' -import {Command} from './completer/command' -import {Environment} from './completer/environment' -import {Reference} from './completer/reference' +import { Extension } from '../main' +import { Citation } from './completer/citation' +import { Command } from './completer/command' +import { Environment } from './completer/environment' +import { Reference } from './completer/reference' export class Completer implements vscode.CompletionItemProvider { extension: Extension diff --git a/src/providers/definition.ts b/src/providers/definition.ts index 86c032e6e..bb99e305f 100644 --- a/src/providers/definition.ts +++ b/src/providers/definition.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode' -import {Extension} from '../main' -import {tokenizer} from './tokenizer' +import { Extension } from '../main' +import { tokenizer } from './tokenizer' export class DefinitionProvider implements vscode.DefinitionProvider { extension: Extension diff --git a/src/providers/docsymbol.ts b/src/providers/docsymbol.ts index d82c0e0ee..f23d0eaf2 100644 --- a/src/providers/docsymbol.ts +++ b/src/providers/docsymbol.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode' -import {Extension} from '../main' +import { Extension } from '../main' export class DocSymbolProvider implements vscode.DocumentSymbolProvider { extension: Extension diff --git a/src/providers/hover.ts b/src/providers/hover.ts index 1d00ac63b..c8c7a8da2 100644 --- a/src/providers/hover.ts +++ b/src/providers/hover.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode' -import {Extension} from '../main' -import {tokenizer} from './tokenizer' +import { Extension } from '../main' +import { tokenizer } from './tokenizer' export class HoverProvider implements vscode.HoverProvider { extension: Extension diff --git a/src/providers/outline.ts b/src/providers/outline.ts index 30d6807db..347f47484 100644 --- a/src/providers/outline.ts +++ b/src/providers/outline.ts @@ -60,14 +60,14 @@ export class SectionNodeProvider implements vscode.TreeDataProvider
{ this.extension.logger.addLogMessage(`Parsing ${filePath} for outline`) const content = fs.readFileSync(filePath, 'utf-8') - let pattern = "^((?:\\\\(?:input|include|subfile)(?:\\[[^\\[\\]\\{\\}]*\\])?){([^}]*)})|^((?:\\\\(" + let pattern = '^((?:\\\\(?:input|include|subfile)(?:\\[[^\\[\\]\\{\\}]*\\])?){([^}]*)})|^((?:\\\\(' this.hierarchy.forEach((section, index) => { pattern += section if (index < this.hierarchy.length - 1) { pattern += '|' } }) - pattern += ")(?:\\*)?(?:\\[[^\\[\\]\\{\\}]*\\])?){([^}]*)})" + pattern += ')(?:\\*)?(?:\\[[^\\[\\]\\{\\}]*\\])?){([^}]*)})' // const inputReg = /^((?:\\(?:input|include|subfile)(?:\[[^\[\]\{\}]*\])?){([^}]*)})|^((?:\\((sub)?section)(?:\[[^\[\]\{\}]*\])?){([^}]*)})/gm const inputReg = RegExp(pattern, 'gm') @@ -133,7 +133,7 @@ export class SectionNodeProvider implements vscode.TreeDataProvider
{ // } else { // it's one level DOWN (add it to the children of the current node) // currentRoot().children.push(newSection) // } - } else if (result[0].startsWith("\\input") || result[0].startsWith("\\include") || result[0].startsWith("\\subfile")) { + } else if (result[0].startsWith('\\input') || result[0].startsWith('\\include') || result[0].startsWith('\\subfile')) { // zoom into this file // resolve the path let inputFilePath = path.resolve(path.join(this.extension.manager.rootDir, result[2])) diff --git a/src/providers/projectsymbol.ts b/src/providers/projectsymbol.ts index d81c0f9da..a1419d1ef 100644 --- a/src/providers/projectsymbol.ts +++ b/src/providers/projectsymbol.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode' -import {Extension} from '../main' +import { Extension } from '../main' export class ProjectSymbolProvider implements vscode.WorkspaceSymbolProvider { extension: Extension