# GF web-based syntax editor
John J. Camilleri
January 2013
A tool for building and manipulating abstract syntax trees in GF.
This is meant as improved replacement of the [old syntax editor][old].
[old]:http://www.grammaticalframework.org/~meza/restWiki/editor.html
## Example usage
If you want to use the tool in your own application, everything you need in the source
files `editor.html` and `editor_online.js`. Contact the [GF developer mailing list][gf-dev]
if you have any problems.
[gf-dev]:http://groups.google.com/group/gf-dev
## Available startup options
### Grammar Manager
| Options | Description | Default |
|---------------------+-------------------------------------------------------------------------+-------------------|
| `initial.grammar` | Initial grammar URL, e.g. `"http://localhost:41296/grammars/Foods.pgf"` | |
| `initial.startcat` | Initial startcat | (grammar default) |
| `initial.languages` | Initial linearisation languages, e.g. `["Eng","Swe","Mlt"]` | (all) |
### Editor
| Options | Description | Default |
|----------------------+---------------------------------------------------------------------------------+----------|
| `target` | | "editor" |
| `initial.abstr` | Initial abstract tree (as string), e.g. `"Pred (That Fish) Expensive"` | |
| `lin_action` | Function called when clicking on the language button beside each linearisation. | |
| `lin_action_tooltip` | Tooltip for the button beside each linearisation. | |
| `show_grammar_menu` | Show grammar menu? | True |
| `show_startcat_menu` | Show startcat menu? | True |
| `show_to_menu` | Show languages menu? | True |
| `show_random_button` | Show random button? | True |
| `show_import` | Show import button/panel? | True |
| `show_export` | Show export button? | True |
## Notes
- Tested with latest Chrome and Firefox (only).
## To do/feature requests
- Compatibility with grammars with dependent category types
- Clicking on tokens to select tree node
- Clipboard of trees
- Usage of printnames
- Enter string/float/int literals
- more prominence to Disamb-linearizations
- show all resulting linearization variants
- undo/redo (or back/forward) navigation
- structure fridge magnets more (eg newline before the magnet whose first letter is different)
## Known bugs
- Change startcat doesn't work when given an initial startcat