Vimform7 - An Inform7 IDE in your Linux terminal

Hi Everyone, to round out the Inform7 support I added a command line tool to install non-standard extensions. Extensions are installed to the same location that gnome-inform7 would install them. This location is ~/Inform7/Extensions. You can easily copy extensions by hand to the location too. The new script is: vimform7-manage-extenstion.sh. Here is an example of using it: vimform7-manage-extenstion.sh -e="./<EXT.i7x>/". I have uploaded a new distribution that integrates these changes (in addition to the source). Look for Vimform7-06-06-2020-165555.tar.xz on the vimform-builds repository linked at the top of this post to try it out.

1 Like

If you are using the project porting script in Vimform7, you may want to take a look at the latest distribution Vimform7-06-17-2020-123416.tar.xz available at vimform7-builds (linked at the top of this topic). This update fixes path issues that were preventing existing inform projects with file paths that include spaces from being successfully converted to a Makefile build.

1 Like

Thanks to continued contributions from alex-ball, we have another fix that addresses issues with white space when using vimform7-make-distro.sh script. If you are using this script you should absolutely pull the latest archive Vimform7-06-18-2020-201046.tar.xz. Note: It is recommended that you always run the vimform-make-distro.sh script from within a temporary directory.

1 Like

Thanks, interactivefiction! I’ll definitely be trying this out. Your GitHub and the documentation look excellent, and I’ll be submitting any suggestions or bug reports I can after using the tool for a bit.

Regards,

Cryo.

1 Like

Can this thing be adapted to work for Inform6?

2 Likes

Yes it should be possible to do with minimal effort. I was looking at doing it myself, but I dont have enough experience with Inform6 and could use some help creating a simple test environment to implement Inform6 support in.

In theory the way Inform6 support would work is that the compiler(s) would be added to the ~/.vimform7/Compilers folder. Then the vimform7-port-prj.sh script would be modified with a new I6 parameter and to dynamically generate a makefile with the appropriate I6 compiler commands. If a help manual in HTML format exists for I6 it could also be included in the same way that the I7 help manual is included. I was also considering adding ZIL support to it in a similar fashion.

If someone can point me at a simple I6 “helloworld” with instructions on where to obtain and how to use the I6 compiler from the commandline and maybe a simple IF work that includes use of an extension, I would be happy to add the features to vimform7.

In my experience implementing I7 functionality I noticed the I6 compiler was used for an intermediate build step. If compiling I6 code is the same as that, then some of the functionality already exists.

1 Like

Thank you @cryo! :smiling_face_with_three_hearts: Your feedback is greatly appreciated. If you come up with any enhancements or customizations let me know. Vimform7 is built to be tweaked by the community.

It’s not hello world, but this is what I always used when I was setting up I6 syntax highlighting in other editors.

http://ifarchive.org/if-archive/infocom/compilers/inform6/examples/Alice3.inf

1 Like

@DavidG - I thought I was replying to you but think I replied to the thread :smile: … This reply was actually for you:

Can you help me with the command lines you would issue to compile it too? Also, where do you get your I6 compiler from? Sorry for all the questions, I really have not done anything with I6!

Sorry. I’m at work and don’t have time to check the docs for the command line stuff. Someone else might know though. Plus the compiler comes with a pretty thorough list if you use the command line help with -h or whatever.

This where I get the compiler from. There’s a lot of different system supported.

http://ifarchive.org/indexes/if-archive/infocom/compilers/inform6/executables/

Edit:
Oh. It’s probably worth mentioning that the compiler doesn’t come with the standard library that’s required to compile every game. You can get that here:

http://ifarchive.org/indexes/if-archive/infocom/compilers/inform6/library/

1 Like

This probably belongs on GitHub, but I’ll post it here for now. If I put more work into it myself I’ll submit a pull request, @interactivefiction.

The vimform7-open-prj.sh script works nicely with gvim if you run it from the command line, but there is no provided method for changing the default to gvim for the desktop icon.
I tried simply adding the -g option to the desktop entry, but the exit_script() function in script may be interfering; my attempt to modify that script did not allow a desktop entry to open gvim for the project and I had to make my own (hooray for AppEditor for making this easy).

I think the easiest way to remedy this small issue is to create another function that specifies the desktop entry, or an additional entry for gvim, which has a different Exec key. My tinkering with the script didn’t yield any results, but did lead to the separate desktop entry.

My other idea is for the script to remove the default desktop entry and create one for the specified project when the user uses the -f argument. This will allow the project to be opened from the desktop as it is now, but will not unnecessarily run the script to read in the variables which will be constant from the perspective of the desktop entry. If the user wants to change the desktop entry, they currently need to run the script from the command line to change the project folder, so this isn’t a change from the current UX.

I’m just getting started with actually using the tool, but I think this is a great project and it’s very welcome. The time I spent tinkering with the Flatpak and the source files for Gnome Inform7 didn’t produce any results (I know BASH, not Cxx), so this is really great!

Thanks, @interactivefiction.

P.S.: I enjoy that you listen to industrial music (such as Skinny Puppy and Sister Machine Gun); my current IF project takes a lot of inspiration from such.

:grinning: i was waiting for someone to try out gvim! I actually ran into the issue you mention too.

One reason I did not formally say that gvim is supported is because I ran into some basic issues with the colors used in gvim for text / background. I could not get it to be consistent in my test environment. I would appreciate it if you could add a feature request on the github so we can track the request for gvim. Also, if you come up with a workable solution, I am happy to merge via a git pull request. Adding a second desktop entry for gvim seems like the least effort. If you can share your work, I would make a new icon for it on my side and add a little green G to the V7 icon to differentiate it so it can be included in the main line for everyone.

A fellow music lover, that is awsome! Skinny Puppy is one of my favorites. Frontline Assembly is probably second in line. :sunglasses:

If you’re not familiar with Chemlab, I recommend it.

1 Like

Well, I’ve done the work to get a desktop shortcut modified by the script when you launch open-prj with g. I’m not sure how popular GVim is within the community here, but I imagine it might be a little more easy to onboard with for those who spend a lot of time in the Gnome-Inform7 IDE or another graphical text editor when they’re writing their Inform code (I know Atom has some good syntax highlighting for Inform, last I checked).

Becasue it’s pretty, I wanted something similar in Spacemacs (even though I only began using it half-way through implementing the GVim stuff). If there is enough interest, I may take advantage of the work that’s already been done to create a similar project for Spacemacs as a package or layer (I’m still learning what those really are).


[A screenshot of Spacemacs, poorly configured to run similarly to Vimform7; an SVG of the Spacemacs logo is overlaid in empty space within the captured window.]

2 Likes

Very cool! I say just go for it, document it, and put it out there and then let the forum know it exists :grin:

Although, you do know what they say about emacs right? :thinking:

Hi Everyone, just a heads up, if you want to give cryo’s gvim mods a try pull the latest vimform7 build bundle and install version Vimform7-07-26-2020-172432.tar.xz from the bundle. If you have issues / feedback feel free to post it here or on the github. Many thanks to @cryo for the mod!!

FWIW: It appears you can download @cryo’s mod directly from the link above too if you dont want the whole bundle of recent builds.

I might, but what is commonly said of it?

1 Like