# Inform IDE

#1

So as a spin off to my other topic on code structuring, we’ve hinted around at some nice features that are in the IDEs, specifically Informs, the differences between the Mac / PC version and perhaps some features that would be nice to have.

I think the Inform IDE is a decent editor and development tool and it’s really pretty fun to develop with. I think though with some improvements it could be great. I’m assuming the current development branch is located here on GitHub, but because of the way it releases with Inform, the releases are slow and long in between. Is there anything to be done about that? Probably not officially, and I’m really not even complaining, just wishing really.

What I do wonder though, is if there is room for another editor, something more than just using your favorite editor and hooking up the command line compilers…which is great and works (@AndrewS you have this working if I recall)…but I’m thinking of something like an full blown editor that would be developed outside of Inform, but work well with it and hopefully have faster turnaround on features and fixes.

I’m not offering BTW…though I do think it would be an interesting project…and who knows, I like to tinker so perhaps I’ll do something someday…but what I’m really interested in are your thoughts…do you all use the standard IDE’s that come with your language of choice? Do you have a different setup you use for development? What things would you like to change?

#2

My problem is that I can get happy with how things are and think ah, no, I’d be greedy to ask for more.

So right now what I have is pretty much documentation and tweaks for the Windows version.

1. tell the user how to build from the command line so they don’t have to open the editor. They can sleuth this out with F5, but they shouldn’t have to.
2. allow the user to specify a command line argument to open up project X so they don’t have to browse eg inform7 c:\games\inform\my-project.inform. Perhaps even allow for a default base directory for inform projects.
3. (an actual text editing feature) I found I often have to shift columns in a table, even when I try to plan it out at first.

This is hard to tease out especially with the flexible tabs. For instance,

object-1 true true 0 0 “Something about object 1”

Let’s say we need another boolean/number field, but we don’t want to put it after the quotes. We’d rather have it at the start so it’s nice and tab-aligned. It’s a pain to take this to a text editor, substitute

true\t0

with

true\t–\t0

and make sure that replacements don’t leak to the next table, even with ctrl-z available. It’s doable but painful.

One possible suggestion would be to riff on alt-] and alt-[ available and add a ctrl for being in a table, and then you’d add the tab before wherever.

1. In that vein it might be nice for us to be able to specify fixed widths for a table, because one of the most painful errors for me is when I have a wrong value in a column. (This may be ok in 6L, but it’s messy in 6G.) Then have a cell to the right cut off anything to the left. The object here is not fidelity so much as seeing, is everything aligned right? The options in the current editor do not work so well for big tables. I have to cut and paste to OpenOffice to figure things out.

Well, that’s my 2 cents. Anyone else?

#3

If you don’t mind something Windows-only, a Visual Studio plugin is one option here. That’s the direction I was trying to take Yomin back when I was working on it. (If you need it to be cross-platform, maybe a SharpDevelop plugin?)

#4

I could definitely live with a VS plugin. What would be cool is to go beyond just the editor and create the debugging tools (breakpoints, stepping through code, watches, …)

#5

ZLR makes the VM end of that pretty easy to implement, at least for the Z-machine (it’s used in Yomin and ConsoleZLR’s debugger). The Visual Studio end seems kind of poorly documented, but there are a few open source debugging plugins one can refer to.

#6

I use the Inform Windows IDE, and agree that making tables align easily would be nice. If you wanted to get fancy you could even have a table outline/grid appear around it so it’s easier to see where rows/columns divide.

It’d be nice to have the ability to keep the manual open to the same section, even if you are using two other panes (e.g. while you are changing the code, compiling, and testing it.)

Navigating the tabs and arrows isn’t that intuitive for me. I frequently forget how to get to the Public Library/extensions, and forget which set of arrows is which–I’ll want to go to the previous section of the documentation, but click the arrow that takes me to the last pane that was open, instead, or vice versa.

Searching the documentation is slow. I don’t remember if it was always that way or if that changed with the more recent version.

(If there’s already a good way to handle any of this, please let me know. Or if there’s a user voice suggestion I can vote on, or something…I may go look at those now…)

#7

Isn’t this already implemented? If you leave the Documentation tab and return to it later it remembers your place. (Or more likely I’m misunderstanding.)

#8

I was thinking it would be nice to be able to keep the manual open, maybe in a pop-up window or something, while you are using the other two panes, so you can see all three at the same time.

But I’m not sure I realized you could get back to a section the way you said…or possibly I just got into a habit of trying to flip back and forth with the arrows and didn’t think about doing it that way. So that helps! Thanks!

#9

I do like this. It would be nice to pop any of the tabs out into a separate window so I could more fully utilize dual monitors.

#10

It occurred to me that I could open the html version of the manual in a separate window. Maybe I’ll try that next time. It wouldn’t help with the other tabs though.

#11

Hopefully this isn’t necro’ing the thread, but revisiting this a few months later, I’ve realized that I don’t as-often use the Inform IDE. The thing is, I use notepad++ when I am just writing narrative ideas and don’t need to compile, and I use the IDE for serious bug fixing/hunting.

My command line building script–well, it’s nice to weed out the big errors, so that I know code I commit will compile, and I’ve been able to make improvements.

https://github.com/andrewschultz/miscellany has icl.pl and its auxiliary file icl.txt. It’s not well documented, but basically I have a root directory (c:\games\inform) and a bunch of child directories e.g. 3d.inform, roiling.inform,uglyoafs.inform. (ICL isn’t smart enough to find anything outside that, yet.) So I can type

icl.pl

And it compiles the default project, e.g. Problems Compound at the moment.

It can run release or debug as well, and there’s a third option the IDE doesn’t allow: Beta.

This is for commands you want to reveal to beta testers but not release. For this, the source requires

volume beta - not for release

where “not for release” is stripped out for a beta build created in

c:\games\inform\beta.inform\source

c:\games\inform\beta materials\Release

This is something I’d love to bug the Inform people about, but the problem is–I like 6G, and it’s not going to be added to 6G retroactively, so I wouldn’t use the request. But I’d like to open the discussion of beta commands, because they could be helpful for the tester and the programmer.

#12

For a minute I thought you were referring to the other ICL.

#13

Oops! I should clarify that. I think I named ICL.PL after that, so yeah.

My next big task is to see if there’s a good way to take the

test x with “n/s/e/w”

commands and 1) run them from the command line or 2) create an autoIt script to run them and put the transcript to somewhere where it can be parsed. This would help a lot with regression testing & less stuff to bug testers with.