This instance was upgraded to Heptapod 0.27.2 on 2021-12-08 at 22:00 UTC+1

README.md 2.39 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# zil-language README

This extension adds editing support for ZIL—the Zork Implementation Language—as well as MDL, which ZIL is based on. It associates itself with `.zil` and `.mud` files.

## Features

This extension implements:

* Syntax highlighting
* Snippets
* Hover help
* Signature help
* Go to definition
* Go to symbol (per file or per workspace)
* ZILF REPL terminal
* ZILF/ZAPF build tasks
* Source-level debugging

## Requirements

### ZILF

Some features require an installation of ZILF (the ZIL compiler).

25
To set this up, [download the latest release](https://get.zilf.io/) (e.g. `zilf-0.9.0-win-x64.zip`), and extract it somewhere. Navigate to the folder containing `zilf.exe` and `zapf.exe` when prompted by the extension, or set the `zil.compiler.path` and `zil.assembler.path` settings to point to those files.
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

### ZLR (optional)

Debugging requires a recent build of ZLR, a [Z-machine](https://en.wikipedia.org/wiki/Z-machine) interpreter.

Such a build is included in this extension package, but if you have another one, you can configure the extension to use it instead.

**NOTE**: The debugger has only been tested on Windows so far. On other operating systems, you may be able to use the debugger by installing [Mono](https://www.mono-project.com/).

## Extension Settings

This extension contributes the following settings, which can be customized per folder:

* `zil.autoDetect`: enable/disable the ZIL build tasks
* `zil.mainFile`: the name of the main `.zil` file, or **null** to use the name of the folder with `.zil` added
* `zil.compiler.path`: path to `zilf.exe`
* `zil.assembler.path`: path to `zapf.exe`
* `zil.debugger.path`: path to `ConsoleZLR.exe` (optional)

## Known Issues

### IntelliSense
* Definitions in ZIL code are only reindexed when the file is saved.

### Debugger
* The debugger has only been tested on Windows.
* Breakpoints can't be set while the game is running.
  - Workaround: Pause the game, set the breakpoint, resume.
* Source line breakpoints can't be set in some cases where the extension and ZILF calculate different
  relative paths for the source file.
  - Workaround: Set a named function breakpoint.

## Acknowledgements

This project's ongoing development is made possible by the hosting services generously provided by [Octobus](https://octobus.net/) and [Clever Cloud](https://www.clever-cloud.com>).