# التوافق والمواصفات التقنية

Canonical source: https://maguyva.ai/ar/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).

أدناه أعداد القدرات التي تُشغِّل البحث البنيوي، والبحث عن الرموز، والتحليل المراعي لبنية الرسم البياني، والفهرسة الأساسية.

تُظهر هذه المؤشرات القدرات المفعّلة في إعدادات اللغات الحالية، وليست درجات لجودة الأداء من البداية إلى النهاية. يتطلب توفر الرسم البياني تفعيل المحلّل واستخراج الرموز واستخراج الرسم البياني. تختلف أنواع العلاقات المدعومة وعمق الاستخراج بحسب اللغة.

- التغطية المفهرسة: **285**. كل لغة مُدرجة مفهرسة من حيث سياق الملفات والنص والمستودع.
- البحث البنيوي القائم على AST: **247**. اللغات التي تمتلك بنية مدعومة بمحلل لتحليل AST وسير عمل البحث البنيوي.
- استخراج الرموز: **282**. لغات تتوفر لها بيانات وصفية للرموز لاستخدامها في التعريفات والبحث.
- علاقات الرسم البياني: **151**. اللغات التي يتوفر لها استخراج تشغيلي للعلاقات من أجل البحث المراعي لبنية الرسم البياني. يختلف عمق الرسم البياني باختلاف اللغة ونوع العلاقة.

- `ast_structural=false`: فهرسة تقوم على النص أولًا، مع وعي بنيوي أخف.
- `symbol_extraction=false`: استخلاص الرموز محدود، لذا يعتمد التنقل بشكل أكبر على سياق الملف والبنية.
- `relationship_extraction=false`: تُفهرس هذه اللغة لأغراض البحث، لكنها لا تُحفظ حاليًا في الرسم البياني للشيفرة.

| 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 |

يتوفر حاليًا البحث البنيوي المستند إلى AST في 247 من اللغات. يمكن فهرسة كل لغة مدرجة؛ ويُعرض توفر AST والرموز والرسم البياني بشكل منفصل أدناه.
