Go Down

Topic: Interest in overhauling the IDE user interface? (Read 19882 times) previous topic - next topic

dxw00d

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

eried


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


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
My website: http://ried.cl

bill2009

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.

Josh Marinacci

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

westfw

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

Graynomad

+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
Rob Gray aka the GRAYnomad www.robgray.com

Boffin1

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



With my mobile phone I can call people and talk to them -  how smart can you get ?

Josh Marinacci

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

Boffin1

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.
With my mobile phone I can call people and talk to them -  how smart can you get ?

eried


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.


When you want those colors on curly braces? I think if they are colored all the time, every sketch will look like a xmas tree adding noise and visual complexity. If is only on selection, makes sense. Same with parentheses
My website: http://ried.cl

Boffin1

#40
Sep 12, 2012, 08:11 am Last Edit: Sep 12, 2012, 08:20 am by Boffin1 Reason: 1
Yes , it would need to be deselected when not needed, as it would look like a Xmas tree, which is what I think would show which goes with which.

Or another way of showing the pairs, is to be able to select a way to have each pair a greater  indent from the left margin ( and the text within them )
I sometimes do this anyway, so that I can see each section,  you would have to be able to return to normal .....


void loop ()
{
if ( cost > x )
   { serialPrint ( cost );  if ( cost > 2x )
       {  digitalWrite ( ledPin, HIGH );
       }
    }
}
With my mobile phone I can call people and talk to them -  how smart can you get ?

eried

#41
Sep 12, 2012, 09:54 am Last Edit: Sep 12, 2012, 09:56 am by eried Reason: 1
I know some people like (not sure why, maybe they get used to this using green-terminal displays with few rows of text)
Code: [Select]
function( ) {
}


But I like:
Code: [Select]
void loop ()
{
 if ( cost > x )
 {
   serialPrint ( cost );  
   
   if ( cost > 2x )
     digitalWrite ( ledPin, HIGH );
 }
}


Just because it is pretty nice to visually match curly braces as you want, your example for me seem extremelly confusing at first glance. The only problem is if the function is  very long, you lose the "tab" position reference. At least in Visual Studio (I guess those guys do lots of usability test) the matching brace gets highlighted and when you type "}" the indentation is fixed.
My website: http://ried.cl

Graynomad

#42
Sep 12, 2012, 09:56 am Last Edit: Sep 12, 2012, 09:58 am by Graynomad Reason: 1
Most (all?) IDEs have some form of match ({[ function. Normally just place the cursor on one and it highlights the matching one. Sometimes you ^B (for example) to move the cursor to its match.

However it's done it's a very useful feature.

EDIT: We all have a preferred method when it comes to {}, it's not the job of an IDE to enforce that, or even help probably. If you use TABs properly the indentation is easy to follow. An editor that handles block in/outdenting makes life a lot easier in this regard.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

Boffin1

Quote
But I like:



Code: [Select]
void loop ()
{
  if ( cost > x )
  {
    serialPrint ( cost ); 
   
    if ( cost > 2x )
      digitalWrite ( ledPin, HIGH );
  }



Shouldnt there be another pair of curly braces after the 2x ?
With my mobile phone I can call people and talk to them -  how smart can you get ?

Graynomad

#44
Sep 12, 2012, 10:58 am Last Edit: Sep 12, 2012, 11:01 am by Graynomad Reason: 1
If you are referring to this

Code: [Select]
if ( cost > 2x )
      digitalWrite ( ledPin, HIGH );


Then no, braces are not required. They are however highly recommended as leaving them out can lead to subtle bugs later. For example you add a line of code.

Code: [Select]

if ( cost > 2x )
      x++;
      digitalWrite ( ledPin, HIGH );


Now of course, despite the indenting, digitalWrite() gets called regardless of the "if" result. This can be difficult to spot because your brain "reads the indenting" and skips over the fact that the two lines are not in a code block.

Another example

Code: [Select]

#define INC_STUFF   x++; y++;

if ( cost > 2x )
      INC_STUFF;


x++  is conditional, y++ is not.

This is bad coding on two fronts, the {} we're talking about and having a non-atomic #define.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

Go Up