Skip to main content

Setup Pragtical as an IDE

Pragtical can be configured to be a proper IDE for most programming languages. The following is a brief overview of the plugins that, when used together, provide the experience of a minimal and modern IDE.

Bells and Whistles

The following plugins are meant to enrich Pragtical with handy features that improve the coding experience:

  • autoinsert and lfautoinsert add automatic bracket/quote insertion and text-wrapping.
  • autosave allows automatic file saving after every change.
  • bracketmatch underlines brackets matching pairs under the caret.
  • colorpreview underlays color values (e.g. #ff00ff or rgb(255, 0, 255)) with their respective color.
  • indentguide adds indent guides to make it easier to see function boundaries.
  • rainbowparen applies rainbow colors to nesting parentheses to make it easier to distinguish them.
  • scalestatus displays current scale (zoom) in the status view (it depends on the scale plugin).
  • selectionhighlight highlights regions of code that match the current selection, to preview for search/replace actions.
  • sticky_scroll keeps track of the current scope at the top of the view.
  • minimap adds VSCode's minimap.
  • devicons provides fancy icons in the project treeview for many file types.

Intellisense

lsp is a plugin that provides support for Intellisense (code completion, goto-definition, document symbols, function signatures and so on) through the LSP protocol, while lintplus provides support for info/warning/error diagnostics.

There is also lsp_snippets, which adds snippets support from lsp to the snippets plugin.

lsp can be configured manually by following the this guide, or it can interface with the lsp-servers repository that allows the installation of bundled LSP servers, which don't require manual configuration.

An example of installing bundled LSP servers is ppm install lsp_rust which installs the binary files required to run rust-analyzer.

Code Snippets

snippets adds support for code snippets.

Snippets can easily be added by following the official guide.

Code Formatters

formatter provides file-specific formatting for several programming languages.

Integrated Terminal

terminal provides an integrated terminal.

Version Control

scm provides source code control integration to Pragtical.

gitblame can be added to show git commit information of the line where the cursor rests.

TODO Treeview

todotreeview is a plugin that adds a custom treeview with the goal of keeping track of flagged comments (TODO, WIP, FIX, ...) for better workflow organization.

Build Integration

build provides a build system, messages window, and easily clickable errors.

At the moment it only supports make, but it can be extended to any build system.

Debug Integration

debugger provides debugger integration, with pluggable backends.

At the moment it only supports gdb.

Automatic Setup

The following examples are configurations and scripts that bundle together the essential components of a minimal IDE:

warning

Build and debugger plugins haven't been properly tested with Pragtical.

  • Adam's configuration contains the build and debugger plugins, as well as several IDE meta-packages (e.g. ide_c, ide_java, ide_python) that add IDE-like functionalities for many popular programming languages.
  • PerilousBooklet's configuration contains documentation about IDE support progress status.