
# Γλώσσες

Το shikiphp περιλαμβάνει **ολόκληρο το σύνολο γλωσσών του Shiki**: κάθε γραμματική από το
[`tm-grammars`](https://github.com/shikijs/textmate-grammars-themes) 1.31.15,
το σύνολο που διαθέτει το Shiki 3.23.0. Πρόκειται για 235 γλώσσες και 18 βοηθητικές γραμματικές που ενσωματώνουν,
253 γραμματικές συνολικά. Είναι οι ίδιες γραμματικές TextMate με τις οποίες κάνουν ανάλυση σε tokens τα VS Code και
Shiki, επομένως η κάλυψη γλωσσών, τα ψευδώνυμα και τα ονόματα scope συμπίπτουν.

Αναφέρετε μια γλώσσα με το αναγνωριστικό της ή ένα από τα ψευδώνυμά της — για παράδειγμα `ts` ή
`typescript`, `js` ή `javascript`, `php`, `rust`, `python`, `html`, `yaml`,
`json` κ.ο.κ. Τα αναγνωριστικά αντιστοιχίζονται ακριβώς, οπότε χρησιμοποιήστε τα με πεζά, όπως παρατίθενται παρακάτω· αν το πακέτο δεν αναγνωρίζει ένα αναγνωριστικό, προκύπτει `Shikiphp\Exceptions\Highlight` με μήνυμα `Unknown language "…"`.

Το ειδικό αναγνωριστικό `'ansi'` δεν είναι γραμματική· επισημαίνει την έξοδο του τερματικού. Δείτε το
[ANSI](https://shikiphp.inline0.dev/el/docs/ansi).

Τα αναγνωριστικά απλού κειμένου `text`, `txt`, `plain` και `plaintext` του Shiki δεν υποστηρίζονται ακόμη και προκαλούν `Unknown language`
([#2](https://github.com/inline0/shikiphp/issues/2)).

## Εμφάνιση των ενσωματωμένων γλωσσών

Από το PHP, ζητήστε τη λίστα από το εργαλείο επισήμανσης:

```php
use Shikiphp\Shikiphp;

$highlighter = Shikiphp::highlighter();

$highlighter->bundledLanguages(); // list<string> — ids shipped in the box
$highlighter->loadedLanguages();  // list<string> — bundled plus any you registered
```

Και οι δύο λίστες περιέχουν κάθε αναγνωριστικό που επιλύεται: πρώτα τα αναγνωριστικά γραμματικών 253 και έπειτα τα 97 ψευδώνυμα, δηλαδή 350 εγγραφές για το πακέτο.

Ή από τη γραμμή εντολών, ένα αναγνωριστικό ανά γραμμή:

```bash
vendor/bin/shikiphp langs
```

## Κατάλογος

Οι 235 ενσωματωμένες γλώσσες, ταξινομημένες κατά όνομα. Κάθε αναγνωριστικό ή ψευδώνυμο μιας γραμμής επιλέγει την ίδια γραμματική.

| Γλώσσα | Id | Ψευδώνυμα |
| --- | --- | --- |
| 1C (Enterprise) | `bsl` | `1c` |
| 1C (Query) | `sdbl` | `1c-query` |
| ABAP | `abap` |  |
| ActionScript | `actionscript-3` |  |
| Ada | `ada` |  |
| Angular HTML | `angular-html` |  |
| Angular TypeScript | `angular-ts` |  |
| Apache Conf | `apache` |  |
| Apex | `apex` |  |
| APL | `apl` |  |
| AppleScript | `applescript` |  |
| Ara | `ara` |  |
| AsciiDoc | `asciidoc` | `adoc` |
| ASP.NET Razor | `razor` |  |
| Assembly | `asm` |  |
| Astro | `astro` |  |
| AWK | `awk` |  |
| Ballerina | `ballerina` |  |
| Batch File | `bat` | `batch` |
| Beancount | `beancount` |  |
| Berry | `berry` | `be` |
| BibTeX | `bibtex` |  |
| Bicep | `bicep` |  |
| BIRD2 Configuration | `bird2` | `bird` |
| Blade | `blade` |  |
| C | `c` |  |
| C# | `csharp` | `c#`, `cs` |
| C++ | `cpp` | `c++` |
| C3 | `c3` |  |
| Cadence | `cadence` | `cdc` |
| Cairo | `cairo` |  |
| Clarity | `clarity` |  |
| Clojure | `clojure` | `clj` |
| Closure Templates | `soy` | `closure-templates` |
| CMake | `cmake` |  |
| COBOL | `cobol` |  |
| CODEOWNERS | `codeowners` |  |
| CodeQL | `codeql` | `ql` |
| CoffeeScript | `coffee` | `coffeescript` |
| Common Lisp | `common-lisp` | `lisp` |
| Coq | `coq` |  |
| Crystal | `crystal` |  |
| CSS | `css` |  |
| CSV | `csv` |  |
| CUE | `cue` |  |
| Cypher | `cypher` | `cql` |
| D | `d` |  |
| Dart | `dart` |  |
| DAX | `dax` |  |
| Desktop | `desktop` |  |
| Diff | `diff` |  |
| Dockerfile | `docker` | `dockerfile` |
| dotEnv | `dotenv` |  |
| Dream Maker | `dream-maker` |  |
| Edge | `edge` |  |
| Elixir | `elixir` |  |
| Elm | `elm` |  |
| Emacs Lisp | `emacs-lisp` | `elisp` |
| ERB | `erb` |  |
| Erlang | `erlang` | `erl` |
| F# | `fsharp` | `f#`, `fs` |
| Fennel | `fennel` |  |
| Fish | `fish` |  |
| Fluent | `fluent` | `ftl` |
| Fortran (Fixed Form) | `fortran-fixed-form` | `f`, `for`, `f77` |
| Fortran (Free Form) | `fortran-free-form` | `f90`, `f95`, `f03`, `f08`, `f18` |
| GDResource | `gdresource` | `tscn`, `tres` |
| GDScript | `gdscript` | `gd` |
| GDShader | `gdshader` |  |
| Genie | `genie` |  |
| Gettext PO | `po` | `pot`, `potx` |
| Gherkin | `gherkin` |  |
| Git Commit Message | `git-commit` |  |
| Git Rebase Message | `git-rebase` |  |
| Gleam | `gleam` |  |
| Glimmer JS | `glimmer-js` | `gjs` |
| Glimmer TS | `glimmer-ts` | `gts` |
| GLSL | `glsl` |  |
| GN | `gn` |  |
| Gnuplot | `gnuplot` |  |
| Go | `go` |  |
| GraphQL | `graphql` | `gql` |
| Groovy | `groovy` |  |
| Hack | `hack` |  |
| Handlebars | `handlebars` | `hbs` |
| HashiCorp HCL | `hcl` |  |
| Haskell | `haskell` | `hs` |
| Haxe | `haxe` |  |
| Hjson | `hjson` |  |
| HLSL | `hlsl` |  |
| HTML | `html` |  |
| HTML (Derivative) | `html-derivative` |  |
| HTTP | `http` |  |
| Hurl | `hurl` |  |
| HXML | `hxml` |  |
| Hy | `hy` |  |
| Imba | `imba` |  |
| INI | `ini` | `properties` |
| Java | `java` |  |
| JavaScript | `javascript` | `js`, `cjs`, `mjs` |
| Jinja | `jinja` |  |
| Jison | `jison` |  |
| JSON | `json` |  |
| JSON Lines | `jsonl` |  |
| JSON with Comments | `jsonc` |  |
| JSON5 | `json5` |  |
| Jsonnet | `jsonnet` |  |
| JSSM | `jssm` | `fsl` |
| JSX | `jsx` |  |
| Julia | `julia` | `jl` |
| Just | `just` |  |
| KDL | `kdl` |  |
| Kotlin | `kotlin` | `kt`, `kts` |
| Kusto | `kusto` | `kql` |
| LaTeX | `latex` |  |
| Lean 4 | `lean` | `lean4` |
| Less | `less` |  |
| Liquid | `liquid` |  |
| LLVM IR | `llvm` |  |
| Log file | `log` |  |
| Logo | `logo` |  |
| Lua | `lua` |  |
| Luau | `luau` |  |
| Makefile | `make` | `makefile` |
| Markdown | `markdown` | `md` |
| Marko | `marko` |  |
| MATLAB | `matlab` |  |
| MDC | `mdc` |  |
| MDX | `mdx` |  |
| Mermaid | `mermaid` | `mmd` |
| MIPS Assembly | `mipsasm` | `mips` |
| Mojo | `mojo` |  |
| MoonBit | `moonbit` | `mbt`, `mbti` |
| Move | `move` |  |
| Narrat Language | `narrat` | `nar` |
| Nextflow | `nextflow` | `nf` |
| Nextflow Groovy | `nextflow-groovy` |  |
| Nginx | `nginx` |  |
| Nim | `nim` |  |
| Nix | `nix` |  |
| nushell | `nushell` | `nu` |
| Objective-C | `objective-c` | `objc` |
| Objective-C++ | `objective-cpp` |  |
| OCaml | `ocaml` |  |
| Odin | `odin` |  |
| OpenSCAD | `openscad` | `scad` |
| Pascal | `pascal` |  |
| Perl | `perl` |  |
| PHP | `php` |  |
| Pkl | `pkl` |  |
| PL/SQL | `plsql` |  |
| Polar | `polar` |  |
| PostCSS | `postcss` |  |
| PowerQuery | `powerquery` |  |
| PowerShell | `powershell` | `ps`, `ps1` |
| Prisma | `prisma` |  |
| Prolog | `prolog` |  |
| Protocol Buffer 3 | `proto` | `protobuf` |
| Pug | `pug` | `jade` |
| Puppet | `puppet` |  |
| PureScript | `purescript` |  |
| Python | `python` | `py` |
| QML | `qml` |  |
| QML Directory | `qmldir` |  |
| Qt Style Sheets | `qss` |  |
| R | `r` |  |
| Racket | `racket` |  |
| Raku | `raku` | `perl6` |
| RegExp | `regexp` | `regex` |
| Rel | `rel` |  |
| reStructuredText | `rst` |  |
| RISC-V | `riscv` |  |
| RON | `ron` |  |
| ROS Interface | `rosmsg` |  |
| Ruby | `ruby` | `rb` |
| Ruby Haml | `haml` |  |
| Rust | `rust` | `rs` |
| SAS | `sas` |  |
| Sass | `sass` |  |
| Scala | `scala` |  |
| Scheme | `scheme` |  |
| SCSS | `scss` |  |
| ShaderLab | `shaderlab` | `shader` |
| Shell | `shellscript` | `bash`, `sh`, `shell`, `zsh` |
| Shell Session | `shellsession` | `console` |
| Smalltalk | `smalltalk` |  |
| Solidity | `solidity` |  |
| SPARQL | `sparql` |  |
| Splunk Query Language | `splunk` | `spl` |
| SQL | `sql` |  |
| SSH Config | `ssh-config` |  |
| Stata | `stata` |  |
| Stylus | `stylus` | `styl` |
| SurrealQL | `surrealql` | `surql` |
| Svelte | `svelte` |  |
| Swift | `swift` |  |
| Systemd Units | `systemd` |  |
| SystemVerilog | `system-verilog` |  |
| TalonScript | `talonscript` | `talon` |
| Tasl | `tasl` |  |
| Tcl | `tcl` |  |
| Templ | `templ` |  |
| Terraform | `terraform` | `tf`, `tfvars` |
| TeX | `tex` |  |
| TOML | `toml` |  |
| TSV | `tsv` |  |
| TSX | `tsx` |  |
| Turtle | `turtle` |  |
| Twig | `twig` |  |
| TypeScript | `typescript` | `ts`, `cts`, `mts` |
| TypeScript with Tags | `ts-tags` | `lit` |
| TypeSpec | `typespec` | `tsp` |
| Typst | `typst` | `typ` |
| V | `v` |  |
| Vala | `vala` |  |
| Verilog | `verilog` |  |
| VHDL | `vhdl` |  |
| Vim Script | `viml` | `vim`, `vimscript` |
| Visual Basic | `vb` | `cmd` |
| Vue | `vue` |  |
| Vue HTML | `vue-html` |  |
| Vue Vine | `vue-vine` |  |
| Vyper | `vyper` | `vy` |
| WebAssembly | `wasm` |  |
| WebAssembly Interface Types | `wit` |  |
| Wenyan | `wenyan` | `文言` |
| WGSL | `wgsl` |  |
| Wikitext | `wikitext` | `mediawiki`, `wiki` |
| Windows Registry Script | `reg` |  |
| Wolfram | `wolfram` | `wl` |
| XML | `xml` |  |
| XSL | `xsl` |  |
| YAML | `yaml` | `yml` |
| ZenScript | `zenscript` |  |
| Zig | `zig` |  |

### Βοηθητικές γραμματικές

Αυτές οι 18 γραμματικές υπάρχουν ώστε να μπορούν να ενσωματωθούν ή να εισαχθούν από άλλες γραμματικές (Angular,
Vue, μακροεντολές C++, Jinja και tagged template literals στο `ts-tags`). Φορτώνονται αυτόματα μαζί με τη γλώσσα που τις χρειάζεται και τα αναγνωριστικά τους εμφανίζονται επίσης στα `bundledLanguages()` και `shikiphp langs`:

`angular-expression`, `angular-let-declaration`, `angular-template`, `angular-template-blocks`, `angular-inline-style`, `angular-inline-template`, `cpp-macro`, `jinja-html`, `markdown-nix`, `es-tag-css`, `es-tag-glsl`, `es-tag-html`, `es-tag-sql`, `es-tag-xml`, `markdown-vue`, `vue-directives`, `vue-interpolations`, `vue-sfc-style-variable-injection`.

## Προσθήκη δικών σας

Χρειάζεστε γλώσσα που δεν περιλαμβάνεται ή ιδιωτική γραμματική; Καταχωρίστε την με το `loadGrammar`. Δείτε τις [Προσαρμοσμένες γλώσσες και θέματα](https://shikiphp.inline0.dev/el/docs/custom-languages-themes).
