All Projects → mrc → tla-tools

mrc / tla-tools

Licence: GPL-3.0 license
TLA+ tools for Emacs

Programming Languages

emacs lisp
2029 projects
TLA
29 projects

Projects that are alternatives of or similar to tla-tools

CommunityModules
TLA+ snippets, operators, and modules contributed and curated by the TLA+ community
Stars: ✭ 167 (+518.52%)
Mutual labels:  pluscal, tlaplus
Psc Ide Emacs
Emacs integration for PureScript's psc-ide tool.
Stars: ✭ 130 (+381.48%)
Mutual labels:  emacs-mode
go-playground
GNU/Emacs mode that setup local Go playground for code snippets like play.golang.org or even better :)
Stars: ✭ 64 (+137.04%)
Mutual labels:  emacs-mode
Fingers.el
Modal editing minor mode for Emacs
Stars: ✭ 51 (+88.89%)
Mutual labels:  emacs-mode
Swift Mode
Emacs support for Apple's Swift programming language.
Stars: ✭ 308 (+1040.74%)
Mutual labels:  emacs-mode
Jq Mode
Emacs major mode for editing jq queries.
Stars: ✭ 70 (+159.26%)
Mutual labels:  emacs-mode
emacs-pug-mode
Pug support for Emacs, based on slim-mode.
Stars: ✭ 39 (+44.44%)
Mutual labels:  emacs-mode
Live Py Plugin
Live coding in Python with PyCharm, Emacs, Sublime Text, or even a browser
Stars: ✭ 222 (+722.22%)
Mutual labels:  emacs-mode
Emacs Solidity
The official solidity-mode for EMACS
Stars: ✭ 120 (+344.44%)
Mutual labels:  emacs-mode
Apib Mode
Emacs API Blueprint major mode
Stars: ✭ 44 (+62.96%)
Mutual labels:  emacs-mode
Clj Refactor.el
A collection of Clojure refactoring functions for Emacs
Stars: ✭ 694 (+2470.37%)
Mutual labels:  emacs-mode
Writegood Mode
Minor mode for Emacs to improve English writing
Stars: ✭ 369 (+1266.67%)
Mutual labels:  emacs-mode
Subed
Subtitle editor for Emacs
Stars: ✭ 77 (+185.19%)
Mutual labels:  emacs-mode
pdfgrep
PDFGrep is a GNU/Emacs module providing grep comparable facilities but for PDF files
Stars: ✭ 24 (-11.11%)
Mutual labels:  emacs-mode
Org Msg
OrgMsg is a GNU/Emacs global minor mode mixing up Org mode and Message mode to compose and reply to emails in a Outlook HTML friendly style.
Stars: ✭ 153 (+466.67%)
Mutual labels:  emacs-mode
mode-line-stats
A bunch of easy to set up stats for the Emacs mode-line.
Stars: ✭ 27 (+0%)
Mutual labels:  emacs-mode
Nyan Mode
Nyan Cat for Emacs! Nyanyanyanyanyanyanyanyanyan!
Stars: ✭ 590 (+2085.19%)
Mutual labels:  emacs-mode
Webpaste.el
webpaste.el can paste whole buffers or parts of buffers to several pastebin-like services and supports failover if one service fails.
Stars: ✭ 67 (+148.15%)
Mutual labels:  emacs-mode
Zoom
Fixed and automatic balanced window layout for Emacs
Stars: ✭ 252 (+833.33%)
Mutual labels:  emacs-mode
Emacs Fsharp Mode
F# Emacs mode
Stars: ✭ 160 (+492.59%)
Mutual labels:  emacs-mode

tla-tools

TLA+ tools for Emacs

tla-pcal-mode

tla-pcal-mode is a mixed mode for editing TLA+ and PlusCal source files. It depends on polymode.

It supports the p-syntax for PlusCal, not the c-syntax.

A basic TLA+ auto-insert template is provided.

Usage

Press C-c C-c for a menu of commands.

The command tla-create-tlc-config-file (C-c C-c c) creates an empty configuration file for TLC, with placeholders for constants, the INIT and NEXT equation, and any invariants.

C-c C-c m starts the TLC model checker with the last selected configuration file. To select a configuration file before running TLC, press C-c C-c -m m. Press -d before m to toggle deadlock checking.

C-c C-c t translates PlusCal and selects the created configuration file.

C-c C-c p creates a PDF version of the current file.

The menu commands expect tla-bin to be installed and pcal, tlc and tlatex to be in the path.

Compilation-mode helper

Add the source directory to load-path and M-x load tla-tools. Or just eval the buffer.

Execute M-x tla-tools-error-regexp-add to add regexps for compilation mode.

Using tla-bin, a TLA+ source file can be checked with M-x compile, with a compile command of tlc <tla-file> or pcal <tla-file> && tlc <tla-file>.

Bugs

  • Doesn't implement much except helping next-error/previous-error.
  • No support TLC reports errors just with the module name, the filename is guessed to be modulename.tla. Sany errors don't have the module name either (makes sense, it's syntax checking the file), so it's guessed from the "Parsing file ..." line. Multiple "Parsing file" lines could lead the errors to the wrong file. As a hack, there's a super ugly regexp which prevents matching filenames beginning with "/private/", which is where the temp files go on my installation. Sorry if you need to check /tmp instead, maybe the test function offers you some inspiration.
  • Error type (warning, error) is not guessed.
  • No extra support for "-tool" option (which makes tlc emit tool-readable messages.)
  • It would be nice if it auto reverted the buffer after pcal (which rewrites the tla file.) Until something nicer is done, I'm using auto-revert-mode. Alternatively check out tlaplus-cli-template which keeps your source clean and puts the pcal translations into a target/ directory.

Running pcal and tlc

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].