It’s sometimes hard to be systematic with progressing a project because of the creative artistry involved; sometimes you have to just work on whatever part of your project that inspires you in the moment. This leaves me with a lot of unfinished bits and pieces here and there. I keep notes in an external document about what needs doing but the workflow isn’t great. A typical example for me is non-existent scenery. I write a new location description but don’t include all the necessary scenery objects (although I want the player to be able to refer to all nouns in the location description). I’d love to be able to highlight and annotate the location description in a way that might even auto-generate a summary of scenery that’s yet to be implemented. Other types of annotation would be great (e.g. an entity I have made where I haven’t yet thought about all the synonyms I’d like to be understood). To go even further: imagine a macro where I can highlight the noun that I want to generate scenery for, press a macro hotkey and automatically insert a stub for the scenery object below the location definition.
There’s plenty to like about the Windows IDE, but the text editor aspect of it isn’t the main one. The contents tab is really nice, but apart from some syntax highlighting the remaining functions have limited usability (e.g. a search and replace doesn’t tell you how many replacements were made; the spell-checker doesn’t distinguish strings for saying from the rest of the code). I’d happily live with editing somewhere else and copying and pasting when it’s time to compile. But can anyone recommend any other code editors that might provide the kind of functionality I’m thinking of?
I use Notepad++ as my code editor for other languages, and I’ve been considering switching to it for I7 because my screen reader doesn’t support the syntax highlighting in the Windows IDE. You can create syntax maps for non-included languages, and design macros that run from the keyboard or a menu. It has a built-in plugin manager to download and install plugins from a repository or your local system. It can run as single instance in a tabbed interface, or multiple windows. It has incremental search and a regular expression engine.
I’m not sure of their capabilities (I don’t use either), but there are at least two extensions for Visual Studio Code that support I7.
I don’t think VSCode has macros out of the box, but I’m sure there’s an extension for that too.
Thanks for the tips Peregryn and Gavin. I also use Notepad++ for coding other stuff, but I didn’t really consider it because as far as I know it doesn’t have the key functionality I’m looking for of annotating text, ideally in a way that allows collation of annotations into a report (which would work as a kind of customisable todo list). Visual Studio Code looks like it has very many extensions so it might take some searching to see if anything does annotations like this, but it seems worth the search.
Peregryn, sorry to get personal and off-topic (I haven’t been around these forums for long enough to know how much of an etiquette breach that is), but I guess from your mention of a screen reader that you are visually impaired? One of the reasons I’m interested in textual IF right now is because of the possibilities of gaming without a screen. I imagine the visually impaired and blind community has more experience of that than that others do. Would you mind if I asked you questions about that?
I have written 1 of the 2 Inform 7 extensions for VS Code (topic here). In addition to syntax highlighting, it also make it possible to compile the story from within VS Code, reporting errors in the source like the IDE.
However, in case you want to try it, there’s a bug on some computers (at least on some macOS) that makes the errors messages and locations wrong. It’s being worked on and a fix will be released as soon as possible.
There’s a new(ish) Emacs package for Inform 7: GitHub - GuiltyDolphin/inform7-mode: Major mode for editing Inform 7 files in Emacs
And then you have access to all of the other extensibility, both latent and realised (in the form of Emacs packages [=“extensions”]), of Emacs.
E.g., for the macro-type thing you mention, the yasnippet package could be an option.
Brilliant, thanks to you two. I note that (unlike for the other suggested environments) my quick googling about Emacs revealed it does indeed have annotation which is something like what I’m after. I’m going to look into this for my next Inform 7 project.
If you’re thinking about doing version control, indeed Magit in Emacs is awesome for dealing with Git. (There are people who don’t really use Emacs, but will still open it up just to use Magit.)
(Another thought, Org-mode in Emacs (another awesome package) let’s you do literate programming by embedding bits of code [which still get proper syntax highlighting/font locking, and can be evaluated if supported by Org-babel] within a narrative document, sort of like [but existing prior to] a Jupyter notebook, and then let you ‘tangle’ out the code and ‘weave’ the documentation. Probably overkill for Inform7 though, since it’s pretty ‘narrative’ already.)