arthwang / vsc-logtalk

MIT License
3 stars 6 forks source link

VSC-Logtalk

A VS Code extension which provides language support for Logtalk.


Features | Configurations | Bug Reporting


Note before installation

This extension can be installed via extensions viewlet of VS Code or 'Extensions: install extension' command from the command palette. The author notices that it is developed and tested in Logtalk 3.12.0 and VS Code 1.17 on Debian 9.0 (stretch). It's not yet tested under other environments.

Features

Feature descriptions and usages

Syntax highlighting

Indentation, snippets and auto-completion

Note: Relations between entities use choice snippets. 'orel' triggers object relation choices and 'crel' for category. There is only one relation between protocols 'extends', so 'ext' will trigger the snippet.

The snippets for built-ins all are triggered by natural prefix, i.e. ':- public' triggers ':- public()' directive. You needn't to type all charaters to show up the suggestion list.

Refter to the table below for other snippets:

Prefix Description
:- obj Object
:- cat Category
:- pro Protocol
orel relations between objects(choice)
crel relations between categories(choice)
ext relations between categories
category Category with protocol
category Category
class Class with all
class Class with category
class Class with metaclass
class Class with protocol
class Class
category Complementing category
category Extended category
protocol Extended protocol
instance Instance with all
instance Instance with category
instance Instance with protocol
instance Instance
private (with no arguments)
private Private predicate
protected (with no arguments)
protected Protected predicate
protocol Protocol
object Prototype with all
object Prototype with category
object Prototype with parent
object Prototype with protocol
object Prototype
public (with no arguments)
public Public predicate

snippets

Grammar linter

linter

Commands

Project specified commands

Project specified commands can be triggered from command palette via entering 'logtalk' to pop up the list of all commands of VSC-Logtalk.

Command Description Key binding
Open Logtalk Opens Logtalk in an integrated terminal alt-x o
Run Testers Runs the logtalk_tester script on the project root directory
Run Doclets Runs the logtalk_doclet script on the project root directory

Source file specified commands

These commands can be triggered from editor/context and explorer/context menus via right click editor area or Logtalk files in explorer area respectively. In explorer context, the file name at which right click occurs will be passed in the command as argument. File specified commands can also be triggered from command palette so that active file name in the editor will be passed in the command.

Command Description Key binding
Load Document Loads the active source file into the Logtalk process F9
Run Tests Runs the tester file under the active source file directory
Run Doclet Run the doclet file under the active source file directory
Goto Next/Previous Error Locate cursor to the nearest line with error/warning from current cursor location and the corresponding error/warning message displays in output channel F7/shift-F7
Scan Dead Code Scans active file for dead code
Generate Documentation Generates documentation for the files under the active source file directory
Generate Diagrams Generates diagrams for the files under the active source file directory

loader

Configurations

Bug reporting

Feel free to report bugs or suggestions via issues

Contributions

Pull requests are welcome.

Acknowledgements

The author of this extension thanks Professor Paulo Moura who is the author of Logtalk for his patient help and support. Syntax highlighting, some snippets, and some commands are integrated from his distro of Logtalk.

License

MIT