{"id":48586209,"url":"https://github.com/mathematic-inc/vscode-latex","last_synced_at":"2026-04-08T18:09:42.583Z","repository":{"id":343596746,"uuid":"391330858","full_name":"mathematic-inc/vscode-latex","owner":"mathematic-inc","description":"VS Code extension providing LaTeX syntax highlighting, formatting via latexindent, linting via ChkTeX, and snippets for developer-focused LaTeX editing","archived":false,"fork":false,"pushed_at":"2026-03-11T04:16:59.000Z","size":237,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-11T06:11:32.990Z","etag":null,"topics":["chktex","formatting","latex","latexindent","linting","snippets","syntax-highlighting","tex","vscode-extension"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathematic-inc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"mathematic-inc"}},"created_at":"2021-07-31T11:00:42.000Z","updated_at":"2026-03-11T04:17:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mathematic-inc/vscode-latex","commit_stats":null,"previous_names":["mathematic-inc/vscode-latex"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mathematic-inc/vscode-latex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathematic-inc%2Fvscode-latex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathematic-inc%2Fvscode-latex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathematic-inc%2Fvscode-latex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathematic-inc%2Fvscode-latex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathematic-inc","download_url":"https://codeload.github.com/mathematic-inc/vscode-latex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathematic-inc%2Fvscode-latex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31567501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chktex","formatting","latex","latexindent","linting","snippets","syntax-highlighting","tex","vscode-extension"],"created_at":"2026-04-08T18:09:41.999Z","updated_at":"2026-04-08T18:09:42.575Z","avatar_url":"https://github.com/mathematic-inc.png","language":"TypeScript","funding_links":["https://github.com/sponsors/mathematic-inc"],"categories":[],"sub_categories":[],"readme":"# Visual Studio Code LaTeX\n\nLaTeX language support for Visual Studio Code. Source available at [github.com/mathematic-inc/vscode-latex](https://github.com/mathematic-inc/vscode-latex).\n\n## Installation\n\nSearch for **LaTeX** (publisher: `mathematic`) in the VS Code Extensions view, or install via the command line:\n\n```sh\ncode --install-extension mathematic.vscode-latex\n```\n\n## Features\n\n- (La)TeX syntax highlighting.\n- Formatting with column wrapping.\n- Linting.\n- LaTeX snippets.\n\nBoth linting and formatting work with remote and unsaved files. They can also be customized with their respective proprietary configurations. See [Configuration Files](#configuration-files) and [Extension Settings](#extension-settings).\n\n## Purpose\n\nThis extension is intended for users accustomed to the typical developer workflow and desire nothing more than a source code editor for (La)TeX. In particular, this extension does not seek to provide full-fledged IDE capabilities such as compilation and viewing. Users looking for these capabilities should use a proper TeX IDE or use [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop).\n\n## Requirements\n\n- [latexindent.pl](https://github.com/cmhughes/latexindent.pl): A `perl` script for formatting LaTeX.\n - You will also need to install some Perl dependencies. Just install\n   [`cpanm`](https://metacpan.org/dist/App-cpanminus/view/bin/cpanm) and you\n   will be prompted in your first format to install dependencies.\n- [ChkTeX](https://www.nongnu.org/chktex/): A LaTeX semantic checker; i.e. linter.\n\nBoth come with most `TeX` distributions (look for the `latexindent` and `chktex` package)\n\n## Extension Settings\n\n### Linter\n\n- `latex.linter.enabled`: Enables the linter.\n  - Default is `true`.\n- `latex.linter.delay`: Duration (in ms) to delay linting during contiguous typing.\n  - Default is `1000`.\n- `latex.linter.timeout`: Amount of time (in ms) to wait for the linter to\n  finish.\n  - Default is `10000`.\n- `latex.linter.config`: Absolute (or relative; see [Resolution Algorithm](#resolution-algorithm)) path to the configuration file for the linter.\n  - Default behavior is to search the directory (or parents) of the file (or the workspace) till a configuration is found. See [Resolution Algorithm](#resolution-algorithm).\n- `latex.linter.path`: Absolute/relative path to the linter executable.\n  - Default behavior is to find the system's executable if it exists.\n\n### Formatter\n\n- `latex.formatter.columnLimit`: Sets the column limit for a given line. A column limit of `0` means that there is no column limit.\n  - Default is `80`.\n  - This is ignored if a configuration file is found in some parent of the file.\n- `latex.formatter.timeout`: Amount of time (in ms) to wait for the formatter to\n  finish.\n  - Default is `10000`.\n- `latex.formatter.config`: Absolute (or relative; see [Resolution Algorithm](#resolution-algorithm)) path to the configuration file for the formatter. Must end in `.yaml`.\n  - Default behavior is to search the directory (or parents) of the file (or the workspace) till a configuration is found. See [Resolution Algorithm](#resolution-algorithm).\n- `latex.formatter.path`: Absolute/relative path to the formatter executable.\n  - Default behavior is to find the system's executable if it exists.\n\n## Configuration Files\n\n\u003e **Warning.** Since we don't parse configuration files, we don't know what options exist ahead of time so we ignore all options if a configuration is found for a particular function. In particular, if a formatter configuration is found, the `formatter.columnLimit` option and VS Code's tab size/\"indent or spaces\" options are ignored.\n\nConfiguration files are resolved through this extension rather than through the formatter/linter. The resolution algorithm is a superset of theirs.\n\n### Configuration File Names\n\n#### Formatter\n\nIn accordance with the resolution algorithm of the formatter, the configuration file names have the following priority:\n\n1. `localSettings.yaml`\n2. `latexindent.yaml`\n3. `.localSettings.yaml`\n4. `.latexindent.yaml`\n\n#### Linter\n\nIn accordance with the resolution algorithm of the linter, the configuration file names have the following priority:\n\n1. `.chktexrc`\n2. `chktexrc`\n\n### Configuration Format\n\n#### Formatter\n\nThe formatter configuration file is written in YAML. See [their documentation](https://ctan.mirrors.hoobly.com/support/latexindent/documentation/latexindent.pdf) for options.\n\n#### Linter\n\nThe linter configuration file is written in their proprietary format. See [this example](https://github.com/sharelatex/chktex/blob/master/chktexrc) for inspiration.\n\n\u003e **Warning**. If `-v` is specified in the `CmdLine` option of the linter configuration, the linter will break since `-v` overrides the extension's custom `-f` formatting for lint messages.\n\n### Resolution Algorithm\n\nIf a configuration file is not found within the directory of the current file, the resolution algorithm is as follows (in order):\n\n- Search the parent of the file.\n- Search the parent of the ... of the parent of the file until we are at the root.\n\nNote the workspace is also searched at some point with the above resolution.\n\nIf a **relative** configuration file is provided through `latex.*.config`, the resolution algorithm is as follows (in order):\n\n- Resolve the relative path against the workspace directory.\n- Resolve the relative path against the directory of the current file.\n  - This happens if the file does not belong to any workspace.\n\nFor example, if `latex.*.config` is `test/someconfig.yaml`, then if a file `F` is opened from some workspace `W`, then the extension will use `$(dirname W)/test/someconfig.yaml` as the configuration file. If a file is opened outside of the workspace, then the extension will use `$(dirname F)/test/someconfig.yaml`.\n\n## Known Limitations\n\n- Formatting/linting large files (\u003e your RAM) is not possible because VS Code doesn't have a streaming API. (But why would your TeX file be that large?)\n- The formatter (for some reason) only takes files ending in `.yaml`.\n- For caching, if a configuration file is suddenly lower in priority than a new configuration (according to [Configuration File Names](#configuration-file-names)), then the new configuration file may not be noticed. In this case, reload the window.\n- If `-v` is specified in the `CmdLine` option of the linter configuration, the linter will break since `-v` overrides the extension's custom `-f` formatting for lint messages.\n\n## Special Thanks\n\nThe syntax is provided by [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop).\n\n\u003e This project is free and open-source work by a 501(c)(3) non-profit. If you find it useful, please consider [donating](https://github.com/sponsors/mathematic-inc).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathematic-inc%2Fvscode-latex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathematic-inc%2Fvscode-latex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathematic-inc%2Fvscode-latex/lists"}