6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Sep 21, 2024 11:06 am

All times are UTC




Post new topic Reply to topic  [ 11 posts ] 
Author Message
 Post subject: What's your ideal IDE
PostPosted: Sun Sep 13, 2020 4:32 pm 
Offline

Joined: Wed Aug 12, 2020 2:30 am
Posts: 43
I've been working on an IDE that I'm writing in C++. It's specifically designed for my own needs. I was thinking that others may want a fast, self contained (no install required) IDE too. Attached are some screenshots of what I use. However, I'd like to hear what you guys would like to see in an IDE that you don't have at the moment.

In the main screen, on the left are the workspace files and on the right are the labels in the current file. If you click on a label then the editor scrolls to that label. The editor has syntax highlighting and auto indention.

What would you guys add?

If anyone did want to try it, it's completely free and always will be.


Attachments:
Settings.png
Settings.png [ 32.6 KiB | Viewed 1506 times ]
MainScereen.png
MainScereen.png [ 96.22 KiB | Viewed 1506 times ]
Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2020 6:59 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8390
Location: Midwestern USA
I can't speak for others, of course, but I want my source code text large, easy to read and in strongly-contrasting colors. I've yet to see a GUI-based IDE that has those features.

BTW, what do operands such as \2 and \3 mean? It's not any type of assembler notation with which I am familiar.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2020 7:02 pm 
Offline

Joined: Wed Aug 12, 2020 2:30 am
Posts: 43
BigDumbDinosaur wrote:
I can't speak for others, of course, but I want my source code text large, easy to read and in strongly-contrasting colors. I've yet to see a GUI-based IDE that has those features.

BTW, what do operands such as \2 and \3 mean? It's not any type of assembler notation with which I am familiar.


You can make the code size and colors anything you want.

The operands \2, \3, etc are macro arguments that 64tass uses.


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2020 11:02 pm 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 674
There should be keyboard shortcuts to jump to the label under the cursor, too, instead of just the mouse. Also, back/forward navigation for any of that sort of jumping around. Maybe bookmarked locations as well that you can use with something like Ctrl-0 to Ctrl-9.

An undo/redo stack.

Cut/copy/paste.

Multiple editor panes into the same file.

Label renaming, which goes through and changes all occurrences.

Single-keystroke comments for doing section breaks, bigger title bars, etc, in whatever ASCII art is configured. In Lisp style, ";" through ";;;;" are used for smaller inline comments to larger sectional ones. That could be an easy trigger for filling in spaces/lines.

I prefer nested indentation scopes for organizational purposes, but I've not really seen anybody else use it except for the structured macros, not raw asm:
Code:
fillWhatever:
          lda val
          ldx #0
:          sta location,x
           dex
          bne :-

Not that you have to directly support that, but if the auto-indentation actively prevents that, it'd be a problem for me. Just keep the same indentation as the previous line; if you write a label, then snap that left and indent after that to the same as the previous line, and that would work for me.

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2020 12:17 am 
Offline

Joined: Wed Aug 12, 2020 2:30 am
Posts: 43
White Flame wrote:
There should be keyboard shortcuts to jump to the label under the cursor, too, instead of just the mouse. Also, back/forward navigation for any of that sort of jumping around. Maybe bookmarked locations as well that you can use with something like Ctrl-0 to Ctrl-9.

On my to-do list.

White Flame wrote:
An undo/redo stack.

Haven't considered this but I can do it.

White Flame wrote:
Cut/copy/paste.

Already done.

White Flame wrote:
Multiple editor panes into the same file.

I'm not sure what you mean by this.

White Flame wrote:
Label renaming, which goes through and changes all occurrences.

Also on my to-do list.

White Flame wrote:
Single-keystroke comments for doing section breaks, bigger title bars, etc, in whatever ASCII art is configured. In Lisp style, ";" through ";;;;" are used for smaller inline comments to larger sectional ones. That could be an easy trigger for filling in spaces/lines.

Not sure I follow this one either.

White Flame wrote:
Just keep the same indentation as the previous line; if you write a label, then snap that left and indent after that to the same as the previous line, and that would work for me.

This is sort of what it does now. It looks at the previous line to check its indentation and indents the new line the same way. If the previous line has no text then the cursor moves to the 0 column (in other words, press enter twice to reset the indentation).


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2020 12:55 am 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 674
For multiple editor panes, Excel, Visual Studio, etc already do this by allowing you to drag a splitter bar to have 2 views into the same file. That way you're looking at 2 portions of a large .asm file at the same time, each in their own scrollable area, each can edit with their own cursor. Emacs does this simply by letting you switch to the same buffer from multiple windows (their word for each split panel inside an OS window).

For the section breaks, I mean inserting simple stuff like this:
Code:
  sta blah
 rts

;-----------------------
; The above bar would be creatable via keystroke
kewl:
  lda foo
  sta bar
  rts

Having a consistent length of the ";----..." bars available easily insertable is handy. Some of the Turbo Assemblers on the C64 did this in their editor with a single keystroke.

Even in your example screenshot, you have the "Macros" comment surrounded by triple bars. It would be handy to have it insert "; === | ===" for you, with the "|" representing where the cursor would be, simply as boiler-plate comment decoration, instead of always having to try to manually do them all the same.

DanielS wrote:
White Flame wrote:
Just keep the same indentation as the previous line; if you write a label, then snap that left and indent after that to the same as the previous line, and that would work for me.

This is sort of what it does now. It looks at the previous line to check its indentation and indents the new line the same way. If the previous line has no text then the cursor moves to the 0 column (in other words, press enter twice to reset the indentation).

In your example, you indent code by 10 spaces. After entering a label at column 0, does the next line start at 0 as well, and you have to manually space over to 10? Many asm editors default to the code indentation, then snap the text to column 0 if you type a colon character, then return you to code indentation. That prevents having to manually line up the code again after typing a left-aligned label name.

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2020 1:01 am 
Offline

Joined: Wed Aug 12, 2020 2:30 am
Posts: 43
White Flame wrote:
For multiple editor panes, Excel, Visual Studio, etc already do this by allowing you to drag a splitter bar to have 2 views into the same file. That way you're looking at 2 portions of a large .asm file at the same time, each in their own scrollable area, each can edit with their own cursor. Emacs does this simply by letting you switch to the same buffer from multiple windows (their word for each split panel inside an OS window).

For the section breaks, I mean inserting simple stuff like this:
Code:
  sta blah
 rts

;-----------------------
; The above bar would be creatable via keystroke
kewl:
  lda foo
  sta bar
  rts

Having a consistent length of the ";----..." bars available easily insertable is handy. Some of the Turbo Assemblers on the C64 did this in their editor with a single keystroke.

Even in your example screenshot, you have the "Macros" comment surrounded by triple bars. It would be handy to have it insert "; === | ===" for you, with the "|" representing where the cursor would be, simply as boiler-plate comment decoration, instead of always having to try to manually do them all the same.

DanielS wrote:
White Flame wrote:
Just keep the same indentation as the previous line; if you write a label, then snap that left and indent after that to the same as the previous line, and that would work for me.

This is sort of what it does now. It looks at the previous line to check its indentation and indents the new line the same way. If the previous line has no text then the cursor moves to the 0 column (in other words, press enter twice to reset the indentation).

In your example, you indent code by 10 spaces. After entering a label at column 0, does the next line start at 0 as well, and you have to manually space over to 10? Many asm editors default to the code indentation, then snap the text to column 0 if you type a colon character, then return you to code indentation. That prevents having to manually line up the code again after typing a left-aligned label name.


I see. It's actually a tab (however big it is depends on whatever the Qt/C++ system has it set at by default). I like a two or four space indent myself so I'll eventually get around to doing that.

I can implement the colon indent thing.


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2020 2:38 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8510
Location: Southern California
I'm not a big fan of IDEs; but I would certainly encourage having things optional. For example, I do not like syntax highlighting (except when I write html), and I would want to turn it off. Same with auto-indent.

Most of what has been discussed so far is really about programmers' text editors, not IDEs. There are some really excellent programmers' text editors out there already though. I use an old DOS version of MultiEdit which does far more than what has been discussed here, allowing dozens of files open at once, windowed and tiled any way I could possibly want (and with a hi-res monitor), multiple windows into the same file as well, compare, keystroke macros, syntax highlighting (which I don't use), integration with the assembler or compiler of your choice, and with a terminal, spell-check, print formatter, vertical block, multi-file search & replace, line draw (which I use to draw diagrams in the comments), and a bazillion other things. Newer versions add more of course. Another one that is very popular today is UltraEdit which may be even a little more capable. The only thing that's not there, AFAIK, is a simulator; but my programming is heavily oriented toward non-human I/O, and simulators never cover that stuff well anyway. A simulator would have to simulate the I/O ICs and everything connected to them.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2020 3:00 am 
Offline

Joined: Wed Aug 12, 2020 2:30 am
Posts: 43
GARTHWILSON wrote:
I'm not a big fan of IDEs; but I would certainly encourage having things optional. For example, I do not like syntax highlighting (except when I write html), and I would want to turn it off. Same with auto-indent.

Most of what has been discussed so far is really about programmers' text editors, not IDEs. There are some really excellent programmers' text editors out there already though. I use an old DOS version of MultiEdit which does far more than what has been discussed here, allowing dozens of files open at once, windowed and tiled any way I could possibly want (and with a hi-res monitor), multiple windows into the same file as well, compare, keystroke macros, syntax highlighting (which I don't use), integration with the assembler or compiler of your choice, and with a terminal, spell-check, print formatter, vertical block, multi-file search & replace, line draw (which I use to draw diagrams in the comments), and a bazillion other things. Newer versions add more of course. Another one that is very popular today is UltraEdit which may be even a little more capable. The only thing that's not there, AFAIK, is a simulator; but my programming is heavily oriented toward non-human I/O, and simulators never cover that stuff well anyway. A simulator would have to simulate the I/O ICs and everything connected to them.


I get what you're saying. However, I couldn't find an IDE that did everything I wanted it to do. The ones I did find did a thousand thing that I didn't want. You're right in the sense that it's like a programmer's text editor. This one though is specifically for 6502 assembly. I have zero interest in supporting other languages.

I don't like a bunch of useless crap littering the screen. That's why this one is stripped down (three sections and only four buttons).


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2020 3:38 am 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 674
I think the biggest difference between an "IDE" and a "programmer's text editor" is knowledge and control of the whole project & build/run process, which enables resolving cross-file source code references, and debugging the running code through the lens of the source code.

Since even just the build process varies wildly even within the 6502 family, I think it's reasonable not to expect to go all out there, but yeah I agree the term "IDE" is often somewhat incorrect in stuff like this, though it's debatable what all needs to be "integrated" to meet the I in IDE.

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2020 3:46 am 
Offline

Joined: Wed Aug 12, 2020 2:30 am
Posts: 43
White Flame wrote:
I think the biggest difference between an "IDE" and a "programmer's text editor" is knowledge and control of the whole project & build/run process, which enables resolving cross-file source code references, and debugging the running code through the lens of the source code.

Since even just the build process varies wildly even within the 6502 family, I think it's reasonable not to expect to go all out there, but yeah I agree the term "IDE" is often somewhat incorrect in stuff like this, though it's debatable what all needs to be "integrated" to meet the I in IDE.

I just used "IDE" as a generic term. But yeah... I agree with you.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

All times are UTC


Who is online

Users browsing this forum: handyandy and 36 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: