# Khả năng tương thích & Thông số kỹ thuật

Canonical source: https://maguyva.ai/vi/docs/compatibility

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Dưới đây là số liệu khả năng chi phối tìm kiếm cấu trúc, tra cứu ký hiệu, phân tích có nhận biết đồ thị, và lập chỉ mục cơ bản.

Các dấu chỉ báo này cho biết những khả năng được bật trong cấu hình ngôn ngữ hiện tại, không phải điểm đánh giá chất lượng từ đầu đến cuối. Để dùng được đồ thị, phải bật trình phân tích cú pháp, trích xuất ký hiệu và trích xuất đồ thị. Các loại quan hệ được hỗ trợ và độ sâu trích xuất khác nhau tùy ngôn ngữ.

- Phạm vi lập chỉ mục: **285**. Mọi ngôn ngữ được liệt kê đều được lập chỉ mục cho ngữ cảnh tệp, văn bản, và repository.
- Tìm kiếm cấu trúc AST: **247**. Các ngôn ngữ có cấu trúc dựa trên parser cho quy trình AST và tìm kiếm cấu trúc.
- Trích xuất ký hiệu: **282**. Các ngôn ngữ có siêu dữ liệu ký hiệu phục vụ định nghĩa và tra cứu.
- Quan hệ đồ thị: **151**. Các ngôn ngữ hỗ trợ trích xuất quan hệ ở mức vận hành cho tìm kiếm có nhận biết đồ thị. Độ sâu đồ thị thay đổi theo ngôn ngữ và loại quan hệ.

- `ast_structural=false`: Index ưu tiên văn bản với khả năng nhận biết cấu trúc hạn chế hơn.
- `symbol_extraction=false`: Trích xuất symbol bị giới hạn, nên việc điều hướng dựa nhiều hơn vào context file và cấu trúc.
- `relationship_extraction=false`: Ngôn ngữ này được index để tìm kiếm, nhưng hiện chưa được lưu bền vững vào đồ thị code.

| language | indexed | ast_structural | symbol_extraction | relationship_extraction |
| --- | --- | --- | --- | --- |
| ABAP (`abap`) | true | true | true | true |
| ActionScript (`actionscript`) | true | true | true | true |
| Ada (`ada`) | true | true | true | true |
| Agda (`agda`) | true | true | true | true |
| AL (`al`) | true | false | true | true |
| Angular (`angular`) | true | true | true | true |
| Apache Avro IDL (`avro`) | true | true | true | false |
| Apex (`apex`) | true | true | true | true |
| Arduino (`arduino`) | true | true | true | true |
| AsciiDoc (`asciidoc`) | true | true | true | false |
| Assembly (`asm`) | true | true | true | false |
| Astro (`astro`) | true | true | true | true |
| AWK (`awk`) | true | true | true | true |
| Bash/Shell (`bash`) | true | true | true | true |
| Bass (`bass`) | true | false | true | true |
| Batch (`batch`) | true | false | true | true |
| Beancount (`beancount`) | true | true | true | false |
| BibTeX (`bibtex`) | true | true | true | false |
| Bicep (`bicep`) | true | true | true | false |
| BitBake (`bitbake`) | true | true | true | false |
| Blade (`blade`) | true | true | true | true |
| BrightScript (`brightscript`) | true | false | true | true |
| BSL (1C:Enterprise Script) (`bsl`) | true | true | true | true |
| C (`c`) | true | true | true | true |
| C# (`csharp`) | true | true | true | true |
| C++ (`cpp`) | true | true | true | true |
| C3 (`c3`) | true | true | true | true |
| Caddyfile (`caddy`) | true | false | true | false |
| Cairo (`cairo`) | true | true | true | true |
| Cap'n Proto (`capnp`) | true | true | true | false |
| Cedar (`cedar`) | true | false | true | false |
| Cedar Schema (`cedarschema`) | true | false | true | false |
| CFML (`cfml`) | true | true | true | true |
| Chatito (`chatito`) | true | true | true | false |
| Circom (`circom`) | true | true | true | false |
| Clarity (`clarity`) | true | true | true | true |
| Clojure (`clojure`) | true | true | true | true |
| CMake (`cmake`) | true | true | true | false |
| COBOL (`cobol`) | true | true | true | true |
| CodeQL (`ql`) | true | true | true | true |
| Comments (`comment`) | true | true | true | false |
| Common Lisp (`commonlisp`) | true | true | true | true |
| Cooklang (`cooklang`) | true | false | true | false |
| Corn (`corn`) | true | true | true | false |
| CPON (`cpon`) | true | true | true | false |
| Crystal (`crystal`) | true | true | true | true |
| CSS (`css`) | true | true | true | true |
| CSV (`csv`) | true | true | true | false |
| CUDA (`cuda`) | true | true | true | true |
| CUE (`cue`) | true | true | true | false |
| Cylc (`cylc`) | true | true | true | false |
| Cython (`cython`) | true | true | true | true |
| D (`d`) | true | true | true | true |
| D2 (`d2`) | true | true | true | false |
| Dart (`dart`) | true | true | true | true |
| Desktop Entry (`desktop`) | true | false | true | false |
| Device Tree (`devicetree`) | true | true | true | false |
| Dhall (`dhall`) | true | true | true | false |
| Diff (`diff`) | true | false | true | false |
| Django HTML (`htmldjango`) | true | true | true | true |
| Djot (`djot`) | true | true | true | false |
| Dockerfile (`dockerfile`) | true | true | true | false |
| DOT (`dot`) | true | true | true | false |
| Doxygen (`doxygen`) | true | true | true | false |
| DTD (`dtd`) | true | true | true | false |
| Earthfile (`earthfile`) | true | false | true | false |
| EBNF (`ebnf`) | true | false | true | false |
| EditorConfig (`editorconfig`) | true | false | true | false |
| EDS (`eds`) | true | false | true | false |
| EEx (`eex`) | true | true | true | true |
| Elixir (`elixir`) | true | true | true | true |
| Elm (`elm`) | true | true | true | true |
| Elsa (`elsa`) | true | false | true | false |
| Elvish (`elvish`) | true | true | true | true |
| Emacs Lisp (`elisp`) | true | true | true | true |
| Embedded Template (`embeddedtemplate`) | true | true | true | true |
| Enforce (`enforce`) | true | false | true | true |
| Erlang (`erlang`) | true | true | true | true |
| F# (`fsharp`) | true | true | true | true |
| F# Signature (`fsharp_signature`) | true | true | true | true |
| Facility (`facility`) | true | false | true | false |
| Faust (`faust`) | true | false | true | true |
| Fennel (`fennel`) | true | true | true | true |
| FIDL (`fidl`) | true | false | true | false |
| FIRRTL (`firrtl`) | true | true | true | false |
| Fish Shell (`fish`) | true | true | true | true |
| Forth (`forth`) | true | true | true | true |
| Fortran (`fortran`) | true | true | true | true |
| Func (`func`) | true | true | true | true |
| GDScript (`gdscript`) | true | true | true | true |
| Git Attributes (`gitattributes`) | true | true | true | false |
| Git Commit (`gitcommit`) | true | true | true | false |
| Git Config (`git_config`) | true | false | true | false |
| Git Ignore (`gitignore`) | true | true | true | false |
| Git Rebase (`git_rebase`) | true | false | true | false |
| Gleam (`gleam`) | true | true | true | true |
| Glimmer (`glimmer`) | true | true | true | true |
| GLSL (`glsl`) | true | true | true | false |
| GN (`gn`) | true | true | true | false |
| Go (`go`) | true | true | true | true |
| Go Module (`gomod`) | true | true | true | false |
| Go Sum (`gosum`) | true | true | true | false |
| Go Template (`gotmpl`) | true | true | true | true |
| Godot Resource (`godot_resource`) | true | false | true | false |
| GraphQL (`graphql`) | true | true | true | true |
| Groovy (`groovy`) | true | true | true | true |
| GStreamer Launch (`gstlaunch`) | true | true | true | false |
| Hack (`hack`) | true | true | true | true |
| Hare (`hare`) | true | true | true | true |
| Haskell (`haskell`) | true | true | true | true |
| Haxe (`haxe`) | true | true | true | true |
| HCL (`hcl`) | true | true | true | false |
| HEEx (`heex`) | true | true | true | true |
| HLSL (`hlsl`) | true | true | true | true |
| Hoon (`hoon`) | true | true | true | true |
| HTML (`html`) | true | true | true | true |
| HTTP (`http`) | true | true | true | false |
| Hurl (`hurl`) | true | true | true | false |
| Hyprlang (`hyprlang`) | true | true | true | false |
| Idris (`idris`) | true | true | true | true |
| INI (`ini`) | true | true | true | false |
| Inko (`inko`) | true | true | true | true |
| ISPC (`ispc`) | true | true | true | true |
| Janet (`janet`) | true | true | true | true |
| Java (`java`) | true | true | true | true |
| JavaScript (`javascript`) | true | true | true | true |
| Jinja2 (`jinja2`) | true | false | true | true |
| jq (`jq`) | true | true | true | true |
| JSDoc (`jsdoc`) | true | true | true | false |
| JSON (`json`) | true | true | true | false |
| Jsonnet (`jsonnet`) | true | true | true | false |
| JSX (`jsx`) | true | true | true | true |
| Julia (`julia`) | true | true | true | true |
| Just (`just`) | true | true | true | false |
| Kconfig (`kconfig`) | true | true | true | false |
| KDL (`kdl`) | true | true | true | false |
| Kotlin (`kotlin`) | true | true | true | true |
| LaTeX (`latex`) | true | true | true | false |
| Lean 4 (`lean`) | true | true | true | true |
| Ledger (`ledger`) | true | true | true | false |
| Less (`less`) | true | false | true | true |
| Linker Script (`linkerscript`) | true | true | true | false |
| Liquid (`liquid`) | true | true | true | true |
| LLVM IR (`llvm`) | true | true | true | false |
| Logtalk (`logtalk`) | true | true | true | true |
| Lua (`lua`) | true | true | true | true |
| Lua Patterns (`luap`) | true | true | true | false |
| LuaDoc (`luadoc`) | true | true | true | false |
| Luau (`luau`) | true | true | true | true |
| Magik (`magik`) | true | true | true | true |
| Makefile (`make`) | true | true | true | false |
| Markdown (`markdown`) | true | true | true | false |
| Markdown Inline (`markdown_inline`) | true | true | true | false |
| MATLAB (`matlab`) | true | true | true | false |
| Mermaid (`mermaid`) | true | true | true | false |
| Meson (`meson`) | true | true | true | false |
| Mojo (`mojo`) | true | true | true | true |
| Move (`move`) | true | true | true | true |
| NASM (`nasm`) | true | true | true | true |
| NetLinx (`netlinx`) | true | true | true | false |
| Nginx (`nginx`) | true | false | true | false |
| Nickel (`nickel`) | true | true | true | false |
| Nim (`nim`) | true | true | true | true |
| Ninja (`ninja`) | true | true | true | false |
| Nix (`nix`) | true | true | true | false |
| Norg (`norg`) | true | true | true | false |
| NQC (`nqc`) | true | true | true | false |
| Nushell (`nushell`) | true | true | true | true |
| Nushell (`nu`) | true | true | true | true |
| Objective-C (`objective_c`) | true | true | true | true |
| Objective-C (alias) (`objc`) | true | true | true | true |
| Objective-C++ (`objective_cpp`) | true | true | true | true |
| OCaml (`ocaml`) | true | true | true | true |
| OCaml Interface (`ocaml_interface`) | true | true | true | true |
| Odin (`odin`) | true | true | true | true |
| OpenAPI (`openapi`) | true | true | true | false |
| OpenFOAM (`foam`) | true | false | true | false |
| Org Mode (`org`) | true | true | true | false |
| Pascal (`pascal`) | true | true | true | true |
| PEM Certificate (`pem`) | true | false | false | false |
| Perl (`perl`) | true | true | true | true |
| PGN (`pgn`) | true | true | true | false |
| PHP (`php`) | true | true | true | true |
| Pkl (`pkl`) | true | true | true | false |
| Plain Text (`text`) | true | false | false | false |
| PlantUML (`plantuml`) | true | true | true | false |
| PO (`po`) | true | true | true | false |
| Pony (`pony`) | true | true | true | true |
| PostScript (`postscript`) | true | false | true | true |
| PowerShell (`powershell`) | true | true | true | true |
| Printf (`printf`) | true | true | true | false |
| Prisma (`prisma`) | true | true | true | false |
| Prolog (`prolog`) | true | true | true | true |
| PromQL (`promql`) | true | true | true | false |
| Properties (`properties`) | true | true | true | false |
| Protocol Buffers (`protobuf`) | true | false | true | false |
| Protocol Buffers (Parser) (`proto`) | true | true | true | false |
| PSV (`psv`) | true | true | true | false |
| Pug (`pug`) | true | true | true | true |
| Puppet (`puppet`) | true | true | true | false |
| PureScript (`purescript`) | true | true | true | true |
| Python (`python`) | true | true | true | true |
| Python Manifest (`pymanifest`) | true | true | true | false |
| QML Directory (`qmldir`) | true | true | true | false |
| QML/JS (`qmljs`) | true | true | true | true |
| R (`r`) | true | true | true | true |
| Racket (`racket`) | true | true | true | true |
| Razor (`razor`) | true | true | true | true |
| RBS (`rbs`) | true | true | true | true |
| re2c (`re2c`) | true | true | true | false |
| Readline (`readline`) | true | true | true | false |
| Rego (`rego`) | true | true | true | true |
| Requirements (`requirements`) | true | true | true | false |
| ReScript (`rescript`) | true | true | true | true |
| reStructuredText (`restructuredtext`) | true | true | true | false |
| reStructuredText (rst) (`rst`) | true | false | true | false |
| Robot Framework (`robot`) | true | true | true | false |
| Roc (`roc`) | true | true | true | true |
| RON (`ron`) | true | true | true | false |
| Ruby (`ruby`) | true | true | true | true |
| Rust (`rust`) | true | true | true | true |
| SAS (`sas`) | true | true | true | true |
| Scala (`scala`) | true | true | true | true |
| Scheme (`scheme`) | true | true | true | true |
| SCSS (`scss`) | true | true | true | true |
| Slang (`slang`) | true | true | true | true |
| Smali (`smali`) | true | true | true | true |
| Smithy (`smithy`) | true | true | true | false |
| Snakemake (`snakemake`) | true | true | true | true |
| Solidity (`solidity`) | true | true | true | false |
| SourcePawn (`sourcepawn`) | true | true | true | true |
| SPARQL (`sparql`) | true | true | true | true |
| SQL (`sql`) | true | true | true | false |
| Squirrel (`squirrel`) | true | true | true | true |
| SSH Config (`ssh_config`) | true | true | true | false |
| Starlark (`starlark`) | true | true | true | true |
| SuperCollider (`supercollider`) | true | true | true | true |
| Svelte (`svelte`) | true | true | true | true |
| Sway (`sway`) | true | true | true | true |
| Swift (`swift`) | true | true | true | true |
| TableGen (`tablegen`) | true | true | true | false |
| Tact (`tact`) | true | true | true | false |
| Tcl (`tcl`) | true | true | true | true |
| Teal (`teal`) | true | true | true | true |
| Templ (`templ`) | true | true | true | true |
| Tera (`tera`) | true | true | true | true |
| Terraform (`terraform`) | true | true | true | false |
| Test (`test`) | true | true | true | false |
| Text Proto (`textproto`) | true | false | true | false |
| Thrift (`thrift`) | true | true | true | false |
| TLA+ (`tlaplus`) | true | true | true | false |
| Tmux (`tmux`) | true | false | true | false |
| Todo.txt (`todotxt`) | true | false | true | false |
| TOML (`toml`) | true | true | true | false |
| Tree-sitter Query (`query`) | true | true | true | true |
| TSV (`tsv`) | true | true | true | false |
| TSX (`tsx`) | true | true | true | true |
| Turtle (`turtle`) | true | false | true | false |
| Twig (`twig`) | true | true | true | true |
| TypeScript (`typescript`) | true | true | true | true |
| Typst (`typst`) | true | true | true | false |
| udev (`udev`) | true | true | true | false |
| Ungrammar (`ungrammar`) | true | true | true | false |
| Uxntal (`uxntal`) | true | true | true | true |
| V (`v`) | true | true | true | true |
| Vala (`vala`) | true | true | true | true |
| VB.NET (`vb_net`) | true | true | true | true |
| VBScript (`vbscript`) | true | false | false | false |
| Verilog (`verilog`) | true | true | true | false |
| VHDL (`vhdl`) | true | true | true | false |
| Vim Script (`vim`) | true | true | true | true |
| Vimdoc (`vimdoc`) | true | false | true | false |
| Visual Basic (`vb`) | true | false | true | true |
| Vue (`vue`) | true | true | true | true |
| WebAssembly Script (`wast`) | true | true | true | true |
| WebAssembly Text (`wat`) | true | true | true | true |
| WGSL (`wgsl`) | true | true | true | true |
| WIT (`wit`) | true | true | true | false |
| Wolfram Language (`wolfram`) | true | true | true | true |
| XCompose (`xcompose`) | true | true | true | false |
| XML (`xml`) | true | true | true | false |
| YAML (`yaml`) | true | true | true | false |
| Yuck (`yuck`) | true | true | true | false |
| Zig (`zig`) | true | true | true | true |
| Zsh (`zsh`) | true | true | true | true |

Hiện có 247 ngôn ngữ hỗ trợ tìm kiếm cấu trúc dựa trên AST. Mọi ngôn ngữ trong danh sách đều có thể lập chỉ mục; khả năng sử dụng AST, ký hiệu và đồ thị được hiển thị riêng bên dưới.
