Pages: 1 2 [3] 4 5 ... 7   Go Down
Author Topic: Interest in overhauling the IDE user interface?  (Read 18471 times)
0 Members and 1 Guest are viewing this topic.
Gosport, UK
Offline Offline
Faraday Member
**
Karma: 21
Posts: 3113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

My website: http://ried.cl

ottawa, canada
Offline Offline
God Member
*****
Karma: 6
Posts: 993
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Bill Rowe
Olduino - An Arduino for the First of Us
www.olduino.wordpress.com

0
Offline Offline
Newbie
*
Karma: 1
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


* ArduinoXScreenSnapz001.png (40.14 KB, 637x630 - viewed 48 times.)
Logged

SF Bay Area (USA)
Offline Offline
Tesla Member
***
Karma: 137
Posts: 6792
Strongly opinionated, but not official!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 129
Posts: 8601
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

+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
Logged

Rob Gray aka the GRAYnomad www.robgray.com

Cape Town South Africa
Offline Offline
Edison Member
*
Karma: 19
Posts: 1218
A newbie with loads of posts, and still so much to learn !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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



Logged

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

0
Offline Offline
Newbie
*
Karma: 1
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Cape Town South Africa
Offline Offline
Edison Member
*
Karma: 19
Posts: 1218
A newbie with loads of posts, and still so much to learn !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

My website: http://ried.cl

Cape Town South Africa
Offline Offline
Edison Member
*
Karma: 19
Posts: 1218
A newbie with loads of posts, and still so much to learn !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 );
        }
     }
}
« Last Edit: September 12, 2012, 01:20:50 am by Boffin1 » Logged

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

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I know some people like (not sure why, maybe they get used to this using green-terminal displays with few rows of text)
Code:
function( ) {
}

But I like:
Code:
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.
« Last Edit: September 12, 2012, 02:56:31 am by eried » Logged

My website: http://ried.cl

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 129
Posts: 8601
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: September 12, 2012, 02:58:40 am by Graynomad » Logged

Rob Gray aka the GRAYnomad www.robgray.com

Cape Town South Africa
Offline Offline
Edison Member
*
Karma: 19
Posts: 1218
A newbie with loads of posts, and still so much to learn !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
But I like:


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


Shouldnt there be another pair of curly braces after the 2x ?
Logged

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

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 129
Posts: 8601
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

If you are referring to this

Code:
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:
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:
#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
« Last Edit: September 12, 2012, 04:01:17 am by Graynomad » Logged

Rob Gray aka the GRAYnomad www.robgray.com

Pages: 1 2 [3] 4 5 ... 7   Go Up
Jump to: