-
Notifications
You must be signed in to change notification settings - Fork 1
Brainstorm
Consider Kate or KDevelop as base and implement IDE as plugins to those or write own Qt application that would use KDE's editor widgets. Using existing editor would make implementing easier and user could use existing plugins to make it more familiar (vim/emacs keys, project manager, c-tags, etc.).
consider main.cpp:
#include <library.hh>
#include <library2.hh>
LcdDisplay lcd;
PortB6 greenLed;
#include "helper1.hh"
#include "helper2.hh"
void setup() {}
void main() {}
#include "helper3.hh"
#include "helper4.hh"
using tabs
In editor above would contain multiple tabs. Tabs would be:
- Header - contains first includes (libraries) and device/module/pin definitions.
- helper1 - contains file helper1.hh
- helper2 - helper2.hh
- main - contains middle part of the
main.cpp
(setup and loop in this case) - helper3 - helper3.hh
- helper4 - helper4.hh
Need to think what happens if helper files would contain includes
In case of second SRC
file (look secondfile in using tree) it would rename Header as API or add that one as first tab.
When user clicks "New Tab" IDE would create new header file with correct include guards and add include to correct location in main.cpp
.
All tabs need to be marked it they are edited, but not saved.
using tree
Would look something like this:
- TARGET
- main.cpp
- helper1.hh
- helper2.hh
- helper3.hh
- foobar.hh
- secondfile.hh
- secondfile.cpp
- secondfile.hh
- main.cpp
Top most item is TARGET
from Makefile
.
Multiple TARGET
s are possible when project have multiple subfolders with data or user has opened multiple repositories/projects.
Next level is SRC
files.
Under each SRC there would be all included local files (one file can occur multiple times if used in multiple SRCs. When selecting this file it would highlight all occurrences).
We should mark in this lines which ones have been edited, but not saved.
Header file's includes can be presented in tree better than with tabs.
hybrid
List TARGET
s and SRC
s in tree (show arrow or somthing to see all included files),
but when opening source file all it's tabs would be opened too.
So changing from one source to another all tabs would change.
Also in this case tree need to mark source file as edited if any of it headers are (except when all files are shown).
IDE should be integrated with git. Git commits would happen on safe, build or successful build (configurable). After a while or when closing, pressing a button, uploading the code, IDE would ask to add commit messages to all previous commits (rebase + ammend). That way user can work and only thing messages to changes afterwards. Also git commits should be filterable with working build, uploaded and other flags.
Some of the above behavior can be implemented in Makefile. On make build
would first stage files, build code and mark success into commit message. After successful it could automatically commit the code.
Git integration would present good work flow and present handy history of project and allow undoing stuff over IDE restart (you can go back in history next time you start doing something). Also multiple branches would be nice.