Piye

Languages and code intelligence

Which languages Piye understands, and what works in each, from errors and completion to rename, formatting, debugging and tests. Piye downloads each language's tools when you first need them.

On this page

How it works

Each language's intelligence comes from its standard language server, the same kind of tool other editors use. Piye downloads a language's tools the first time you open one of its files, pinned to known versions and checked before use. Nothing to install by hand.

What works, by language

LanguageServerErrors, completion, definitions, renameFormatDebuggerTests
TypeScript, JavaScripttypescript-language-serverYesPrettierJavaScript debuggerJest, Vitest
PythonPyrightYesRuffdebugpypytest, unittest
GogoplsYesgofmtDelveYes
Rustrust-analyzerYesrustfmtlldb-dapYes
C, C++, Objective-C, CUDAclangdYesclang-formatlldb-dap (one file, or a Makefile project)make test
JavajdtlsYesYesjava-debugGradle or Maven
KotlinKotlin language server (JetBrains)YesYesYesGradle
C#RoslynYesYesnetcoredbgdotnet test
Swiftsourcekit-lspYesYeslldb-dapswift test
PHPphpactorYesPHP CS FixerNot yetPHPUnit
DartDart analysis serverYesdart formatYesdart test
Shellbash-language-serverYes (with ShellCheck)shfmt
SQLsqlsCompletion of keywordssql-formatter
HTML, CSS, SCSS, Less, JSONVS Code's HTML, CSS and JSON serversErrors and completionPrettier, or the server
YAMLyaml-language-serverYesYes
TOMLTaploErrors and completionTaplo
MarkdownMarksmanBroken links, link completion, rename a headingPrettier
Dockerfiledocker-langserverYesYes
Tailwind CSSTailwind CSS language serverClass name completion

Tests run from the Testing view and the Test buttons; see Tasks and testing.

Notes on some languages

  • Markdown: links between files, link warnings and completion need the folder to be a Git repository or to have a .marksman.toml.
  • Kotlin: JetBrains publishes its Kotlin server as builds that each work for a few weeks. When a newer one is available, Piye offers it (it's large, so Piye asks first).
  • C and C++: debugging works for a single file and for Makefile projects.
  • SQL: on Linux for ARM computers, the SQL server has no build, and Piye says so.

Settings per language

Settings, Languages has a page for each language: turn its server on or off, set its own options (like tab size or formatter), and read its log. Settings, Code Intelligence has what applies across languages: inline problems, ESLint, Python type checking, auto imports, inline hints, CodeLens, semantic colours, and what happens on save. See Settings reference.

Settings, Code Intelligence
Settings, Code Intelligence.

When something's off

  • Open the language's log from Settings, Languages or the Output panel.
  • Change Language Mode (CmdKthenM) if a file opened as the wrong language.
  • A folder from outside Piye runs its own TypeScript only after you trust it.
© 2026 Piye TechnologiesPrivacyTermsCookiesSupportChangelog