Wishlist for the IDE

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?

2 Likes

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

1 Like

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.)

hjh

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.

1 Like

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…

2 Likes
  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.

6 Likes

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

3 Likes

+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”.

Ah, I also wish the “Evaluation mode” that does not allow editing the opened document, only evaluating codes and navigating that document.

2 Likes

I would like “rectangular editing” or "columnar editing " like in Notepad++ and lots of other code editors.

And generally better completion.

Otherwise I rather like the IDE as a SC beginner but long time programmer

You’re right thought its weird that it only works with cmd-b and not when double clicking that block of code.

  1. I use this bridge to make it possible to have a GUI/interactions in the dockedBrowser.
    This works very well but need to install somes dependencise, run a nodejs program and make html pages.
    this can be better/easier to load Views directly on the dockedBrowser Window.

  2. have a var/id/class for splits to automate somthing like : split[0].open(document[3]). Maybe for sessions too… Session(“abc”).open