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.
What's your ideal IDE
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: What's your ideal IDE
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.
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!
Re: What's your ideal IDE
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.
BTW, what do operands such as \2 and \3 mean? It's not any type of assembler notation with which I am familiar.
The operands \2, \3, etc are macro arguments that 64tass uses.
-
White Flame
- Posts: 704
- Joined: 24 Jul 2012
Re: What's your ideal IDE
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:
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.
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: Select all
fillWhatever:
lda val
ldx #0
: sta location,x
dex
bne :-Re: What's your ideal IDE
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.
White Flame wrote:
An undo/redo stack.
White Flame wrote:
Cut/copy/paste.
White Flame wrote:
Multiple editor panes into the same file.
White Flame wrote:
Label renaming, which goes through and changes all occurrences.
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.
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.
-
White Flame
- Posts: 704
- Joined: 24 Jul 2012
Re: What's your ideal IDE
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:
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.
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.
For the section breaks, I mean inserting simple stuff like this:
Code: Select all
sta blah
rts
;-----------------------
; The above bar would be creatable via keystroke
kewl:
lda foo
sta bar
rtsEven 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.
Re: What's your ideal IDE
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:
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.
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.
For the section breaks, I mean inserting simple stuff like this:
Code: Select all
sta blah
rts
;-----------------------
; The above bar would be creatable via keystroke
kewl:
lda foo
sta bar
rtsEven 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.
I can implement the colon indent thing.
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: What's your ideal IDE
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 [1] 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.
[1] Edit, 8/9/25: I just found out, from the Wikipedia article that MultiEdit is defunct, due to the heart-attack death of the man who really made it go, and that even the website has been gone since Aug 2022.
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 [1] 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.
[1] Edit, 8/9/25: I just found out, from the Wikipedia article that MultiEdit is defunct, due to the heart-attack death of the man who really made it go, and that even the website has been gone since Aug 2022.
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: What's your ideal IDE
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.
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 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).
-
White Flame
- Posts: 704
- Joined: 24 Jul 2012
Re: What's your ideal IDE
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.
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.
Re: What's your ideal IDE
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.
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.