mirror of
https://github.com/Aider-AI/aider.git
synced 2025-06-01 18:25:00 +00:00
Improve linter support and repo map coverage for various programming languages.
This commit is contained in:
parent
74201dd733
commit
e2fb2466a9
2 changed files with 63 additions and 26 deletions
|
@ -517,6 +517,7 @@ def get_scm_fname(lang):
|
||||||
|
|
||||||
def get_supported_languages_md():
|
def get_supported_languages_md():
|
||||||
from grep_ast.parsers import PARSERS
|
from grep_ast.parsers import PARSERS
|
||||||
|
|
||||||
from aider.linter import Linter
|
from aider.linter import Linter
|
||||||
|
|
||||||
res = """
|
res = """
|
||||||
|
@ -525,11 +526,11 @@ def get_supported_languages_md():
|
||||||
"""
|
"""
|
||||||
data = sorted((lang, ex) for ex, lang in PARSERS.items())
|
data = sorted((lang, ex) for ex, lang in PARSERS.items())
|
||||||
linter = Linter()
|
linter = Linter()
|
||||||
|
|
||||||
for lang, ext in data:
|
for lang, ext in data:
|
||||||
fn = get_scm_fname(lang)
|
fn = get_scm_fname(lang)
|
||||||
repo_map = "✓" if Path(fn).exists() else "✗"
|
repo_map = "✓" if Path(fn).exists() else ""
|
||||||
linter_support = "✓" if lang in linter.languages else "✗"
|
linter_support = "✓"
|
||||||
res += f"| {lang:20} | {ext:20} | {repo_map:^8} | {linter_support:^6} |\n"
|
res += f"| {lang:20} | {ext:20} | {repo_map:^8} | {linter_support:^6} |\n"
|
||||||
|
|
||||||
res += "\n"
|
res += "\n"
|
||||||
|
|
|
@ -9,40 +9,76 @@ Aider supports almost all popular coding languages.
|
||||||
This is because top LLMs are fluent in most mainstream languages,
|
This is because top LLMs are fluent in most mainstream languages,
|
||||||
and familiar with popular libraries, packages and frameworks.
|
and familiar with popular libraries, packages and frameworks.
|
||||||
|
|
||||||
Aider uses tree-sitter to do code analysis and help
|
Aider has specific support for linting many languages.
|
||||||
|
By default, aider runs the built in linter any time a file is edited.
|
||||||
|
If it finds syntax errors, aider will offer to fix them for you.
|
||||||
|
This helps catch small code issues and quickly fix them.
|
||||||
|
|
||||||
|
Aider also does code analysis to help
|
||||||
the LLM navigate larger code bases by producing
|
the LLM navigate larger code bases by producing
|
||||||
a [repository map](https://aider.chat/docs/repomap.html).
|
a [repository map](https://aider.chat/docs/repomap.html).
|
||||||
Aider can currently produce repository maps for many popular
|
Aider can currently produce repository maps for many popular
|
||||||
mainstream languages, listed below.
|
mainstream languages, listed below.
|
||||||
|
|
||||||
Aider should work quite well for other languages, even without repo map support.
|
Aider should work quite well for other languages, even those
|
||||||
|
without repo map or linter support.
|
||||||
|
|
||||||
<!--[[[cog
|
<!--[[[cog
|
||||||
from aider.repomap import get_supported_languages_md
|
from aider.repomap import get_supported_languages_md
|
||||||
cog.out(get_supported_languages_md())
|
cog.out(get_supported_languages_md())
|
||||||
]]]-->
|
]]]-->
|
||||||
|
|
||||||
| Language | File extension |
|
| Language | File extension | Repo map | Linter |
|
||||||
|:--------:|:--------------:|
|
|:--------:|:--------------:|:--------:|:------:|
|
||||||
| c | .c |
|
| bash | .bash | | ✓ |
|
||||||
| c_sharp | .cs |
|
| c | .c | ✓ | ✓ |
|
||||||
| cpp | .cc |
|
| c_sharp | .cs | ✓ | ✓ |
|
||||||
| cpp | .cpp |
|
| commonlisp | .cl | | ✓ |
|
||||||
| elisp | .el |
|
| cpp | .cc | ✓ | ✓ |
|
||||||
| elixir | .ex |
|
| cpp | .cpp | ✓ | ✓ |
|
||||||
| elm | .elm |
|
| css | .css | | ✓ |
|
||||||
| go | .go |
|
| dockerfile | .dockerfile | | ✓ |
|
||||||
| java | .java |
|
| dot | .dot | | ✓ |
|
||||||
| javascript | .js |
|
| elisp | .el | ✓ | ✓ |
|
||||||
| javascript | .mjs |
|
| elixir | .ex | ✓ | ✓ |
|
||||||
| ocaml | .ml |
|
| elm | .elm | ✓ | ✓ |
|
||||||
| php | .php |
|
| embedded_template | .et | | ✓ |
|
||||||
| python | .py |
|
| erlang | .erl | | ✓ |
|
||||||
| ql | .ql |
|
| go | .go | ✓ | ✓ |
|
||||||
| ruby | .rb |
|
| gomod | .gomod | | ✓ |
|
||||||
| rust | .rs |
|
| hack | .hack | | ✓ |
|
||||||
| typescript | .ts |
|
| haskell | .hs | | ✓ |
|
||||||
| typescript | .tsx |
|
| hcl | .hcl | | ✓ |
|
||||||
|
| html | .html | | ✓ |
|
||||||
|
| java | .java | ✓ | ✓ |
|
||||||
|
| javascript | .js | ✓ | ✓ |
|
||||||
|
| javascript | .mjs | ✓ | ✓ |
|
||||||
|
| jsdoc | .jsdoc | | ✓ |
|
||||||
|
| json | .json | | ✓ |
|
||||||
|
| julia | .jl | | ✓ |
|
||||||
|
| kotlin | .kt | | ✓ |
|
||||||
|
| lua | .lua | | ✓ |
|
||||||
|
| make | .mk | | ✓ |
|
||||||
|
| objc | .m | | ✓ |
|
||||||
|
| ocaml | .ml | ✓ | ✓ |
|
||||||
|
| perl | .pl | | ✓ |
|
||||||
|
| php | .php | ✓ | ✓ |
|
||||||
|
| python | .py | ✓ | ✓ |
|
||||||
|
| ql | .ql | ✓ | ✓ |
|
||||||
|
| r | .R | | ✓ |
|
||||||
|
| r | .r | | ✓ |
|
||||||
|
| regex | .regex | | ✓ |
|
||||||
|
| rst | .rst | | ✓ |
|
||||||
|
| ruby | .rb | ✓ | ✓ |
|
||||||
|
| rust | .rs | ✓ | ✓ |
|
||||||
|
| scala | .scala | | ✓ |
|
||||||
|
| sql | .sql | | ✓ |
|
||||||
|
| sqlite | .sqlite | | ✓ |
|
||||||
|
| toml | .toml | | ✓ |
|
||||||
|
| tsq | .tsq | | ✓ |
|
||||||
|
| typescript | .ts | ✓ | ✓ |
|
||||||
|
| typescript | .tsx | ✓ | ✓ |
|
||||||
|
| yaml | .yaml | | ✓ |
|
||||||
|
|
||||||
<!--[[[end]]]-->
|
<!--[[[end]]]-->
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue