Skip to content

A Visual Studio extension and LSP server for Metamath

License

Notifications You must be signed in to change notification settings

tirix/metamath-vspa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

metamath-vspa

A Visual Studio extension and LSP server for Metamath

Status

The server is still in an early experimental state. It is usable but many advanced features have not yet been implemented.

How-to

Installation

Install Visual Studio Code, and install rust if not already on your system. Then, install the Metamath LSP server. Until metamath-knife and metamath-vspa are delivered as crate.io crates, this has to be done manually:

git clone https://github.com/tirix/metamath-vspa.git
cargo install --path metamath-vspa/metamath-lsp

This shall compile and install the LSP server mm-lsp-server binary, accessible from your default path.

You can then install the Visual Studio Code extension. There are several possible ways for that:

  • in a web browser, from the extension's Visual Studio Code Marketplace web page, press the green "install" button,
  • in Visual Studio Code, from the View/Extensions menu, search for Metamath "A Metamath proof assistant" (tirix.metamath), and press the blue "install" button.
  • in Visual Studio Code, use Quick Open (Ctrl-P on Windows/Linux, Cmd-P on MacOS), paste ext install tirix.metamath in the box and hit Enter (Return).

See also the extension instructions for how to configure the extension and as a Metamath workspace.

Contributing / Development

It also possible to launch the extension from the source, using Visual Studio Code itself, for example if you wisth to modify it and contribute to the project:

  • Open the directory metamath-vspa/metamath-vscode
  • Install node.js and npm
  • Launch npm install to install pre-requisites
  • Choose 'Run/Start Debugging' from the menu or hit the corresponding shortcut (F5)

Features

  • Hovering over a label provides the statement information (hypotheses, assertion, associated comment),
  • The "Go to definition" command, when performed on a label, leads to the corresponding statement's definition,
  • The "Show Proof" context menu opens a theorem's proof in a new editor tab,
  • Diagnostics for the opened Metamath data

Preview:

  • Hover and go to definition:

mm-vscode-1

  • Outline, problems and show proof:

mm-vscode-2

  • Unification, first version:

mm-vscode-4

Acknowledgements

  • This server is based on Mario Carneiro's LSP server for MM0.
  • Its core functions are provided by the metamath-knife library, initially by Stefan O'Rear.
  • Metamath syntax highlighting is based on Li Xuanji's work in his vscode extension.

About

A Visual Studio extension and LSP server for Metamath

Resources

License

Stars

Watchers

Forks

Packages

No packages published