Wishlist for the IDE

Feel free to add.

  1. I would like autocompletion for Array.fill to default to Array.fill rather than Array.fillNoteNames. (I realize that’s hard, but… usability…)


In my IDE, autocompletion for “Array.” is Array.with. I don’t have .fillNoteNames listed as a method anywhere. Is this from a plugin? “Array.f” + RETURN gives me Array.fill

  1. Fix GNOME bugs (ctrl + . does not work by default, special characters like ~ ’ | does not work If you change the input language

  2. Built in basic filter and compressor GUI (as present in every DAW nowadays) with visual monitoring as well

  3. General file manager

  4. User configurable stethoscope and freqscope visuals

  5. Built-in musical keyboard mode (a = C, s = D, d = E … z and x = octaves) as present in every DAW, activated by keyboard shortucut

  6. Graphical buttons to export plots as pdf, png, jpeg, etc

  7. NRT recording and plotting button (big dreams allowed here :sweat_smile:)

  8. Notebook mode allowed (like python with Jupyter)

  9. A pack of GUIs styles - pack of sliders styles, pack of buttons, pack of envelopeview styles, etc

  10. Help browser responding to the color theme by default

  11. More color themes

1 Like

vim mode please!



Splits owning tabs, like in all other ides.

Directory browser, rather than document browser.

Documentation that follows the ide theme.

Whilst I love the idea of vim mode, it raises the question why not just make a great vscode plugin and use thier ecosystem?

Streamlined, clear, concise, and maximally self contained entries in the help documentation.

Just going to shamelessly throw out there that I’m a broke doctoral student and would 100% take a job combing through every entry in there

Ah, it is indeed from a Quark (wslib). I’ve filed a bug report in that repository.

The broader issue, though, is that the IDE seems to base the order of the auto completion menu on 1/ class membership (if it can be determined) and 2/ alphanumeric order.

1/ is, fillNoteNames is defined on Array (which I think is a mistake – methods generally applicable to all types of arrays should be defined on SequenceableCollection) while fill is defined on Collection. So the IDE treats fillNoteNames as being closer to the specified class, despite fill being a more fundamental method.

2/ is sensible as far as it goes (though there’s an interesting bug: type x.patt and, on my system, the top of the auto completion menu is pattern2_ – but if you hit return at this point, it will insert pattern!?). BUT it means that frequently-used methods that happen to be late in the alphabet are harder to locate.

These would be sclang features, not IDE features. GUIs are not part of the IDE. (I see your point – thinking of user interaction – but it isn’t the case in SC that all interaction goes through the IDE.)

“Graphical buttons to export plots” – I think export already exists in the language (Image.fromWindow) – just need to attach a button.

Likely to be impossible, for users who are not using an abstraction layer where RT and NRT are compatible (that means… basically everyone). (The Ctk quark is the nearest attempt that I know of.) NRT is really a tricky thing in SC.

We’ve tended to focus on maintaining the existing abstraction objects, without developing higher-level abstractions that would support features like transparent NRT rendering. (And for some cases, I can’t see a way to bridge them. For instance, all of my pitch-playing processes go through Voicer. Voicer tracks node status and makes decisions about releases based on this. I don’t believe this translates into NRT at all.)


Tabs to seperate and unlimited windows.

The followings are on my wish list, but most of them might be not realisable, I think:

  1. Folding and unfolding the code lines like Mathematica notebook and Jupyter notebook. This has been wished many times but not accepted because it needs too much time and effort. However, shortly this feature was supported under Windows. Was the version 3.5.x?

  2. HyperLinks to a position in an SCD and another SCD.

  3. Displaying multimedia files like pictures and video in SCD similar to old SC under macOS.

  4. Changing font, font size and style similar to old SC under macOS.

  5. Default font which uniformly looks in all OSs.

  6. Help documentation colours corresponding to the IDE colour themes. It is not precisely the IDE wishlist.

  7. Indicating code line numbers in the code Mirrors in the help documentation. It is also not precisely the IDE wishlist.

Not a full solution, but this post describes how to display the Help in a dark theme:

1 Like

inverting helps with dark themes, but i found it too distracting to have the help differ so much from the code. I ended up copying the actual color values for the theme i’m using into the help source files and regenerating them using some SC commands. unfortunately i don’t remember the actual details of the procedure

ok, i think i found the style of the theme on codemirror and used/modified the codemirror.css file

now i should add that change for the scrollbar someoe posted earlier and it should be complete…

  1. Help browser recognize Back/Forward commands from the OS (like mulitple finger swiping on the trackpad on a macbook to go back forward in history).

  2. Some way of hiding the IDE and only focus on the GUI, not having the IDE and GUI represented as two different applications. How it is now looks and feels like a development interface and not something for an “end user”. It would be great to have the option to open SC as one application and be able to hide/unhide the IDE at will. This is one of the really nice things about the old Cocoa SC 3.6 and a reason I still use it for standalones.

  3. I miss the keybind to clear the post window (cmd+shift+c).

You can assign these yourself under preferences :smiley:

@Herman after finishing your mods could you share them over here?

I would love multi-file search, find and replace.


I think this is a simple one: after executing a block of code, move the cursor to the end of that block so that the next block of code is easy to select and execute (as it was in pre IDE times). As it is now, the cursor stays at the beginning of the block and, if it is very long, it can take a while to find the next block, thus obstructing the flow, especially in a live situation.

1 Like

It would be nice to have a way to fork a project or make a set of versions of a file from the menu bar


+1 I also super want that.

I would like it if it was possible to switch between tabs by using Cmd + numbers like one does in a browser. I see students try this and become confused when it does not work this way.

I am aware that Cmd + Alt + Arrow Keys move to next tab left and right, but this is not as precise. Maybe it would be nice to be able to reach the rightmost tab by wrapping around from the leftmost tab, maybe.

I need to state that I do not use tens of tabs in scide, but I have seen students do this.

“cmd + shift + b” selects the block of the cursor’s current position. After evaluating the block, the cursor moves one line below the block by pressing the down-arrow key.
However, I think it would be convenient if there were a shortcut “move the cursor to the next block or the next line below after evaluating”.