I’m editing a larger file in the Inform7 IDE and am experiencing very slow editing. I’ve searched and found no one else reporting this. I can edit small files with no lag, but large files present a huge lag as I type. Compiling happens at normal speed. Attached is a link to a video of me typing far ahead of the buffer.
Here are the deets of my file:
The 33597-word source text has successfully been translated into a world with 41 rooms and 184 things, and the index has been brought up to date.
I’m not a macOS user, but here’s one thing that’s been the root cause of several Mac Inform 7 slowness problems discussed on the forum in the past: you should clean out your project’s Skein once in a while, if you’re not already doing so. (The skein, in case you don’t know, is a feature that lets you track separate playthroughs in your piece, move by move; if you’ve never cleaned it out, or if it’s been a long long time, it can be the root cause of slowness.)
Unfortunately, clearing the skein doesn’t help. This is a problem I observe with every large file I edit, whether it has been tested or ever compiled before.
Andrew, I thought it might be a large block of ChangeLog notes that I kept in comment form in the file, but it wasn’t that. I also thought I might have a tricky hanging bracket or quote that was making the file difficult, but it appears not.
It appears to not be purely an issue of length, as I pasted in half of the text of Pride and Prejudice and noted only a small slow down. With the entire book, typing was considerably slower.
It appears that there are processes that happen after every keystroke whose rapidity is affected by the length/complexity of the text.
Again, I am not a macOS person. However, a classic problem for text editors is that very very very long single lines (which might appear to the end-user as paragraphs – I mean, any single stretch of text that doesn’t have a new line character in the middle) tend to make the text editor slow down.
So I guess what I’m suggesting is: if you have very long paragraphs in your source, does the IDE editor get more responsive if you break them up into smaller chunks?
I don’t have a Mac to test, so this is a complete stab in the dark, but I seem to recall (from years ago) that some I7 IDEs had a setting in the preferences called “Elastic tabstops”, and that this setting caused slow-down during editing, for me and others.
So if that setting is still there, you could try turning it off.
Sorry if this turns out to be a red herring, but I figured it was worth a try, and quick to check (or rather un-check the option, as it were).
I tried loading the project you sent (by email) in the latest Inform IDE (1.68.1), and I had no problems editing at all.
(I have that elastic tabstop preference turned on. It’s now called “auto-space table columns” in the preferences pane.)
I didn’t see anything in the code that looked suspicious, either. No particularly long paragraphs or comments or I6 inclusions. No line break peculiarities.
The only thing that was slightly odd was a bunch of table declarations with extra tabs:
Table of Smarter Parser Messages (continued)
rule name message
stripping niceties rule "[run paragraph on]"
According to normal I7 style, these lines would be unindented. The compiler doesn’t care – your code works – but the indentation trips up the “auto-space table columns” preference; those tables are not in fact auto-spaced in the editor.
But, as I said, I don’t see any slowdown problems. So that indentation is a red herring as far as I can tell.
OK, I should’ve thought of this experiment earlier, but it is definitely syntax highlighting related. If I disable syntax highlighting, I get no typing lag.
Hi!
I am having the same problem. And the solution was indeed disabling the syntax highlighting feature. It was working quite fine until I (unfortunately) updated the Big Sur version to 11.13.1 hoping to fix some screen glitches. Not only my external monitor is not working at all, but also Inform became unbelievably slow.
Is there some other text writer that you would recommend to write the text using syntax highlighting? Is a feature that I’ve became an addict to, my source text has plenty of substitutions, so I’m kind of lost now because the colors were really helping me.
Any suggestions are very welcome.
Thank you!
I gave up on the IDE. I started using Atom which is a sophisticated editor I use for most of my programming. There is a inform7 context highlighting plugin.
I had some challenges around representation of headings and the IDE (still used for compiling) overwriting the file I was editing (as described here).
But these were largely overcome by adding a few rules in Atom to increase the size and font-weight of hedings. And the overwriting problem was overcome with this great suggestion.
I’m afraid this syntax-coloring slowdown is connected to some factor that we don’t yet understand. Wes saw it starting on MacOS 10.15; you saw it starting on 11.13.1; I don’t see it at all.
I don’t use Mac, so I can’t help you. However, mysterious slowdown points me to 2 possible causes: 1. Cache Memory. 2. Bad library.
It may be worth it to run test files ( no need to compile, just load it in the editor) in ever increasing size and see what it does.
Cache: the operation will go smoothly until there’s a jump in sluggishness
Library: Response time will worsen in exponential manner.
I personally ran into the second issue on my Google Doc, where I notice slowdown starting on page 100 and get progressively worse until it became intolerable.
Another note is that I ran into sluggish editor, not due to the editor, but due to the windowing system. The slowdown would be of constant time. For some reason, the display was set to Smooth Font, and that’s the difference between slow and fast. The problem immediately disappeared when I turn off that option. This setting can be found both in OS desktop and IDE. So, it bears checking on all settings. I doubt that is your case, since it’s fast if you turn off syntax highlighting.
So, if you want to know what causes it, check for memory, and whether the slowdown behavior changes when the file size is different, and in what way.
Another note: does the editor uses regex for syntax highlighting? Some languages/libraries are notably slow with those. I don’t see why it would work on some, but not the other, though. Unless it’s a dynamically linked library.