Interest in overhauling the IDE user interface?

What he means is that's way too easy to highlight a whole lot of text when only a couple lines were desired.

Yes, it my be my slow reactons, but ofen I end up with a whole yellow page...

Me too, its not just you. Can't have a twitchy hand.

CrossRoads:
Me too, its not just you. Can't have a twitchy hand.

Ohhh I see the issue too! never noticed because I never select with the mouse. I will check if there is some delay I can add so selection is more precise.

I'm usually working at home on my Sony Vaio laptop with touchpad, have learned to sort of roll a finger along vs trying to slide.

Thats a relief that it wasnt just me imagining the custard screen :slight_smile:

I'm digging into the Arduino IDE codebase now. It's not too complicated but it really seems like a mess. Basic compilation is done in a fairly convoluted way. There are a whole lot of references to compiling Java code. Is there a reason for this? I'm guessing there is a lot of history in this codebase, so I'm weighing fixing it vs replacing it. So far I have built a straightforward class that can successfully compile a sketch to a hex file. Adding support for alternate cores, multiple libs, and the other stuff should be fairly easy.

On the GUI, I've done some more prototyping. I'm trying to decide between using Swing or JavaFX. JavaFX is the future of desktop Java and a lot prettier. Unfortunately it doesn't have a robust text editor, so doing things like Syntax Highlighting won't be possible for a while. If I go with Swing then I can put something together very fast that will look decent, but it won't have access to the new JavaFX features. In particular, it won't have access to the nice WebView. I was really hoping to use the WebView for inline help / docs. Thoughts? Does anyone care what it's written in?

  • J

WebView for inline help / docs

Does that mean you have to be online to get docs or can it get files locally?

I'm all for using the newer JavaFX if it's better but personally I hate being forced to go online for documentation.


Rob

The docs would be local still, but using HTML would give us very nice formatting.

That's OK then.


Rob

There are a whole lot of references to compiling Java code. Is there a reason for this?

This is because the Arduino IDE is based on "Processing" ( http://Processing.org ), a "simplified" programming system for the desktop. Processing has similar principles, but creates "mostly java" code, where Arduino (or "Wiring") generates mostly C++ code. The pieces of the IDE that would have compiled and run the Java "sketches" of Processing are replaced with pieces that preprocess, compile, and upload, the avr-gcc code of Arduino.

PS: a questioned "to be answered" is whether modifications to the Arduino IDE will be accepted at all, or whether it's more efficient to stay in sync with the Processing project...

whether it's more efficient to stay in sync with the Processing project.

I think there is mileage in staying in line with Processing. I definitely see benefits to being able to point new programmers to it, and being able to say that it looks and works basically the same as the Arduino IDE, and the language is fairly similar too.

Of course, if we could persuade the Processing team to bring some of the useful features mentioned here to their IDE, then filter them across to Arduino, we could all benefit.

Go with the newest UI, can't you use scintilla? I will love to have autocompletion and menus with brief tooltips as reference. Every amateur will also learn much quicker with that.

I can help you in the Windows version

Two things i would like to see:

  1. the board and port settings stored kept individually to the ide window and stored with the sketch.
  2. a list of recently used sketches on the file menu
    Oh, and
  3. the hex file kept in the sketch folder.

I've got more of my prototype running now. The working name is "Arduino X". See the attached screenshot. Note that this is definitely not what it will look like beyond the basic layout. This is just a test to prove I can properly style the text editor. Notice the line numbers on the left side and syntax highlighting in the editor. Keywords and comments are rendered differently than other strings. This is all done with the JSyntaxPane project. I'm also using a custom font (Ubuntu's monospace font). Now that I've proven we can style it we can start deciding what the default style(s) should actually look like. Which font, color scheme, etc.

In terms of functionality the prototype can now successfully compile the Blink example.

What other features would you like? It seems there is a strong desire to have settings saved on a per-sketch basis. What settings should be like that? Font size? Window location? USB port?

-j

there is a strong desire to have settings saved on a per-sketch basis. What settings should be like that? Font size? Window location? USB port?

Board type and port selection are the big ones. I hope no one changes font info on a per-sketch basis...

+1

Global font selection is good though. As for window size/location, probably global for that as well but please put it in somewhere.


Rob

I would like to click an option to let each pair of curly braces be a different colour ?

Could you be more specific on the curly braces? You mean that braces are a different color than other text, or that each pair of braces is another color. Perhaps deeply nested braces are darker?

-j

Yes, the first left one in a loop could be say green, and the very last one the same.

Then the second one could be blue, and its matching one blue, etc etc even if they are nested within other pairs.

At the moment we can only highlight one pair at a time, this way they could all show up at once, with their partner.

There could only be so many colours, but they can start repeating the sequence, I think it would be clear which is which partner.