Controlling the IDE - What features would you like to see?
Re: Controlling the IDE - What features would you like to se
What i'm still missing - more internal variables.
So it is not possible to use Tools (external) relative to the pB-Folder.
If we have a internal Variable (e.g. {$purebasic.path} ) in the paths of the Tools, it
would be much easier.
Also would be Auto-Text. Let say i write prcr, ist would replaced with ProcedureReturn.
(Okay, i can use PhraseExpress and so, but i don't want my define PureBasic-AutoTexts System-Global.)
Ideal would be a Sytem like PSPad, where i can define variables in Templates.
This Variables are asked when using this Template and filled in.
So i can write a new modul via a tampate by asking the name, and all procedures get the correct name.
Mike
So it is not possible to use Tools (external) relative to the pB-Folder.
If we have a internal Variable (e.g. {$purebasic.path} ) in the paths of the Tools, it
would be much easier.
Also would be Auto-Text. Let say i write prcr, ist would replaced with ProcedureReturn.
(Okay, i can use PhraseExpress and so, but i don't want my define PureBasic-AutoTexts System-Global.)
Ideal would be a Sytem like PSPad, where i can define variables in Templates.
This Variables are asked when using this Template and filled in.
So i can write a new modul via a tampate by asking the name, and all procedures get the correct name.
Mike
Re: Controlling the IDE - What features would you like to se
neotoma wrote: Also would be Auto-Text. Let say i write prcr, ist would replaced with ProcedureReturn.
(Okay, i can use PhraseExpress and so, but i don't want my define PureBasic-AutoTexts System-Global.)
Mike
Code: Select all
Macro prcr
ProcedureReturn
EndMacro

PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

-
- Addict
- Posts: 4774
- Joined: Thu Jun 07, 2007 3:25 pm
- Location: Berlin, Germany
Re: Controlling the IDE - What features would you like to se
Good point, thank you for mentioning it.neotoma wrote:So it is not possible to use Tools (external) relative to the pB-Folder.
If we have a internal Variable (e.g. {$purebasic.path} ) in the paths of the Tools, it
would be much easier.
Re: Controlling the IDE - What features would you like to se
I also third this:
Code: Select all
3. Create executables without prompts.
Set the appropriate dialog entries and go.
Automation_MenuCommand("Compiler:Create executable: this.exe")
Re: Controlling the IDE - What features would you like to se
OK, I`ll try to make it short, but it`s a lot 
0.) Make it possible to set Callbackfunctions for many Events (and also for 2. of this list)
It could look like this
-On Menu-Events (See 1.3)
-On Highlighting, Typing and Autocompleting-Events
-On Debugger-Events
-On Events that belong to request 2.)
1.)Those things that are possible with the current IDE
1.1)Editing Possibilities
-Getting and Setting the active Tab
-Moving Tabs (Like "Sort SourceCodes")
-Getting and Setting the caretpos in the Editor-Tab
-Getting and Setting Selection
-Getting and Setting the Text in the Current Line
1.2)Files
-Open/Close Files
1.3)Menu
-Please create a List of Constants for each MenuItem
-Make it possible to read/write the Menuitem Entrie names
-Make it possible to simulate a Menu Event
1.4)AutoComplete
-Make it possible to access (add/delete/make (in)visible Items, If possibly like that:) the full list and the List that fits to the current typed code
It could look like this
Reseting could be done by the IDE itself, filling the Structure with things like "definition\description" could be done by IDE-Tools
1.5)Changing WindowLayout
-Changing IDE-Highlighting
-Moving the Spliters to resize the bottom/left lines
-Change the layout of the Toolbar
2.)Some things, that would be "Todo"
A little prolog
All this should aim to a new multiple-vs-unique-Window-Management for the IDE. Something like Docking and Undocking and Extern-GUI-Customizing.
I`d like to see, that Extern tools could be included as Panelentries on the tools Bar or the bottombar or in the Tablist
as well as Code-Files could be opened in Extra windows, the tools bar or the bottombar.
I'm not quite sure how hard this is to implement, but I'm sure it would be great.
2.1)That ListView on the Bottom, that only shows the Compiler-Output is IMHO lost space. I saw in other IDEs, that they have a panel there with different Entries:
-Compiler Output
-FindList for Search (see here also 2.6)
-DebugOutput
-Information-Panel
For PBIDE I would like to ask for a Panelgadget with different panels like in the toolsbar on the right/left of the Editor.
2.2)Make PanelEntries moveable and Dockable. When just setting all Panel-Entries on extra Container-Gadgets, it should be possible to assign them to different panelgadgets or to new Childwindows.(on windows it would be done with SetParent, I think) and this way it would be easy to customize the IDE for everyone. For example, moving a Code-Tab to the toolsbar would make it possible to compare to Codefiles.
2.3)Allow extern PanelEntries.
What I mean is to make it possible to add Tools with an own GUI inside the PureBasic-IDE and controlling this GUI (Button-Events, Filling Listviews etc.) by callbacks.
Some Things, that could become possible with this
2.3.1)Strg+Alt+Left MouseClick on a Tab should open a Window that includes a ScintillaGadget with the code.
Doing this again should close this Window. It should be marked, that there is an open Window.
2.3.2)Nearly same thing. Strg+Alt+ Left MouseClick on a Procedure Call should open such a window and navigate to the Procedures Declaration
2.3.3)I`d liked to have a search-function for whole projects that can do the following:
-Fill a ListView with all found lines; Clicking on an Entry should navigate to the specific tab and line
-Code-Specific-Searching, which means: Search Strings, Search Variables, Search Procedures, Search Constants, etc
-Mark the found lines in the Listview: For example for Variables: Declaration-Lines are green, "Setting Value to the Variable"-Lines are blue,"Getting Value"-Lines are Red.
-Perhaps marking, what is to be found.
2.3.4)Advanced Options like renaming Variables could be done from Inside the IDE
2.3.5)A multiple line Information. In big projects, one line of Description is not enough to declare, what a function does and what the variables are REALLY used for.
Espacially point 2.3.3 and 2.3.5 are things that should belong to the IDE, and so they should (in my opinion) not be opened in extra windows.
So, I think, I can understand, that you're wishing to say "sorry, this wount come" and I know, that it´s not done in one day, but I think it could help to make IDE-Tools more effective and more people would think about to write things like advanced Search and so on.
So, thanks for reading this thousands of lines, I would have written a little shorter, if possible, but it took some time to write all this understandable and short.
Greetings
Franky
PS: If Point 2 is to far away from the question of this thread, I could also move it to an extra one. But I thought, It would in fit here.

0.) Make it possible to set Callbackfunctions for many Events (and also for 2. of this list)
It could look like this
Code: Select all
PBIDE_AddFunction_OnEvent(#PBIDE_EVENT_MENU,#PBIDE_MENU_COMPILER_START,#PBIDE_CALLBACK_CALLBEFORE,@Start_Aufruf())
-On Highlighting, Typing and Autocompleting-Events
-On Debugger-Events
-On Events that belong to request 2.)
1.)Those things that are possible with the current IDE
1.1)Editing Possibilities
-Getting and Setting the active Tab
-Moving Tabs (Like "Sort SourceCodes")
-Getting and Setting the caretpos in the Editor-Tab
-Getting and Setting Selection
-Getting and Setting the Text in the Current Line
1.2)Files
-Open/Close Files
1.3)Menu
-Please create a List of Constants for each MenuItem
-Make it possible to read/write the Menuitem Entrie names
-Make it possible to simulate a Menu Event
1.4)AutoComplete
-Make it possible to access (add/delete/make (in)visible Items, If possibly like that:) the full list and the List that fits to the current typed code
It could look like this
Code: Select all
Enumeration ;AutoComplete-Types (Could be done PB-Intern)
#PBIDE_AUTOCOMPLETE_TYPE_VAR
#PBIDE_AUTOCOMPLETE_TYPE_CONSTANT
#PBIDE_AUTOCOMPLETE_TYPE_PROCEDURE
...
EndEnumeration
Enumeration ;AutoComplete Extensionss (Could be done PB-Intern)
#PBIDE_AUTOCOMPLETE_EXT_2DDrawing
#PBIDE_AUTOCOMPLETE_EXT_GADGETS
#PBIDE_AUTOCOMPLETE_EXT_NETWORK
...
EndEnumeration
Structure PBIDE_Definition
file.s ;Path of the file
line.l
description; at first, this could be the full line Text
EndStructure
Structure PBIDE_AUTOCOMPLETE
name.s ;Name of the Autocomplete-Item; this is what would be auto-completed
intern_extrn.b;Indecates, if This is a PB-Intern Var/Proc or a userdefined var/proc...
type.b;Function, Procedure, etc, Var_Global,Var_Protected, Var_Static.....
type_extension.b;A list of Extensions for PB-intern Procedures
Definition.PBIDE_Definition
EndStructure
Global NewList Entries.PBIDE_AUTOCOMPLETE()
...
;We only write projects without Network Support
PBIDE_AutoComplete_GetFullList(Entries())
ForEach Entries()
if Entries()\intern=#PBIDE_AutoComplete_Intern and Entries()\type_Extension=#PBIDE_AUTOCOMPLETE_EXT_NETWORK
DeleteElement(Entries())
EndIf
Next
PBIDE_AutoComplete_SetFullList(Entries())
;There Must be some way to even hold these Extra-Programs alive
Repeat
Delay(10)
event= PBIDE_WorkOutEvents()
Until event=#PBIDE_EVENT_CloseMe
;On finish reset the list
PBIDE_AutoComplete_ResetFullList(Entries())
END
1.5)Changing WindowLayout
-Changing IDE-Highlighting
-Moving the Spliters to resize the bottom/left lines
-Change the layout of the Toolbar
2.)Some things, that would be "Todo"
A little prolog
All this should aim to a new multiple-vs-unique-Window-Management for the IDE. Something like Docking and Undocking and Extern-GUI-Customizing.
I`d like to see, that Extern tools could be included as Panelentries on the tools Bar or the bottombar or in the Tablist
as well as Code-Files could be opened in Extra windows, the tools bar or the bottombar.
I'm not quite sure how hard this is to implement, but I'm sure it would be great.

2.1)That ListView on the Bottom, that only shows the Compiler-Output is IMHO lost space. I saw in other IDEs, that they have a panel there with different Entries:
-Compiler Output
-FindList for Search (see here also 2.6)
-DebugOutput
-Information-Panel
For PBIDE I would like to ask for a Panelgadget with different panels like in the toolsbar on the right/left of the Editor.
2.2)Make PanelEntries moveable and Dockable. When just setting all Panel-Entries on extra Container-Gadgets, it should be possible to assign them to different panelgadgets or to new Childwindows.(on windows it would be done with SetParent, I think) and this way it would be easy to customize the IDE for everyone. For example, moving a Code-Tab to the toolsbar would make it possible to compare to Codefiles.
2.3)Allow extern PanelEntries.
What I mean is to make it possible to add Tools with an own GUI inside the PureBasic-IDE and controlling this GUI (Button-Events, Filling Listviews etc.) by callbacks.
Some Things, that could become possible with this
2.3.1)Strg+Alt+Left MouseClick on a Tab should open a Window that includes a ScintillaGadget with the code.
Doing this again should close this Window. It should be marked, that there is an open Window.
2.3.2)Nearly same thing. Strg+Alt+ Left MouseClick on a Procedure Call should open such a window and navigate to the Procedures Declaration
2.3.3)I`d liked to have a search-function for whole projects that can do the following:
-Fill a ListView with all found lines; Clicking on an Entry should navigate to the specific tab and line
-Code-Specific-Searching, which means: Search Strings, Search Variables, Search Procedures, Search Constants, etc
-Mark the found lines in the Listview: For example for Variables: Declaration-Lines are green, "Setting Value to the Variable"-Lines are blue,"Getting Value"-Lines are Red.
-Perhaps marking, what is to be found.
2.3.4)Advanced Options like renaming Variables could be done from Inside the IDE
2.3.5)A multiple line Information. In big projects, one line of Description is not enough to declare, what a function does and what the variables are REALLY used for.
Espacially point 2.3.3 and 2.3.5 are things that should belong to the IDE, and so they should (in my opinion) not be opened in extra windows.
So, I think, I can understand, that you're wishing to say "sorry, this wount come" and I know, that it´s not done in one day, but I think it could help to make IDE-Tools more effective and more people would think about to write things like advanced Search and so on.
So, thanks for reading this thousands of lines, I would have written a little shorter, if possible, but it took some time to write all this understandable and short.
Greetings
Franky
PS: If Point 2 is to far away from the question of this thread, I could also move it to an extra one. But I thought, It would in fit here.
Give Up everything but trying!
Re: Controlling the IDE - What features would you like to se
@Franky - Wow. I would like half of what you wrote.
I really can't wait to put an end to compiling and stopping at 1 error line.
Maybe this is just my specific situation, but when translating my old code, I get close with an external tool to make syntax changes FromOldCode ToPB.
But, I manually place the new code into the IDE and manually hit [F5] and manually read the error line.
I want to programmatically hit [F5]...
Read out error line and file(or Tab)...
Insert ";ERROR_xxx" comment for later...
Hit [F5] again and repeat until Error Line number > X.
Then parse all the offending ";ERROR" lines at once into a Human Debug File.
Paste back and have a go again.
I really can't wait to put an end to compiling and stopping at 1 error line.
Maybe this is just my specific situation, but when translating my old code, I get close with an external tool to make syntax changes FromOldCode ToPB.
But, I manually place the new code into the IDE and manually hit [F5] and manually read the error line.
I want to programmatically hit [F5]...
Read out error line and file(or Tab)...
Insert ";ERROR_xxx" comment for later...
Hit [F5] again and repeat until Error Line number > X.
Then parse all the offending ";ERROR" lines at once into a Human Debug File.
Paste back and have a go again.
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
Re: Controlling the IDE - What features would you like to se
What's wrong with AutoComplete for that?neotoma wrote:Also would be Auto-Text. Let say i write prcr, ist would replaced with ProcedureReturn
Re: Controlling the IDE - What features would you like to se
I want the 'save' and 'run' triggers for the tools fixed...
( PB6.00 LTS Win11 x64 Asrock AB350 Pro4 Ryzen 5 3600 32GB GTX1060 6GB)
( The path to enlightenment and the PureBasic Survival Guide right here... )
( The path to enlightenment and the PureBasic Survival Guide right here... )
-
- Addict
- Posts: 1675
- Joined: Sun Dec 12, 2010 12:36 am
- Location: Somewhere in the midwest
- Contact:
Re: Controlling the IDE - What features would you like to se
In the meantime.. You could probably accomplish this with AutoIt or another complex macro-ing language.skywalk wrote:@Franky - Wow. I would like half of what you wrote.
I really can't wait to put an end to compiling and stopping at 1 error line.
Maybe this is just my specific situation, but when translating my old code, I get close with an external tool to make syntax changes FromOldCode ToPB.
But, I manually place the new code into the IDE and manually hit [F5] and manually read the error line.
I want to programmatically hit [F5]...
Read out error line and file(or Tab)...
Insert ";ERROR_xxx" comment for later...
Hit [F5] again and repeat until Error Line number > X.
Then parse all the offending ";ERROR" lines at once into a Human Debug File.
Paste back and have a go again.
Re: Controlling the IDE - What features would you like to se
@Zach,
Probably so, but it would be a mish mash of confusion for me.
And what can AutoIT do that PB Tool code cannot?
Correct me if I am wrong, but AutoIt cannot read/edit the process memory of the IDE?
So, AutoIt would have to use the IDE GUI to read the Clipboard Debugger Log, re-load the edited file(s) after each failed compile.
Instead of a PB Tool updating the *existing Scintilla text and re-compiling on the fly.
*when this is made available per tab.
Probably so, but it would be a mish mash of confusion for me.
And what can AutoIT do that PB Tool code cannot?
Correct me if I am wrong, but AutoIt cannot read/edit the process memory of the IDE?
So, AutoIt would have to use the IDE GUI to read the Clipboard Debugger Log, re-load the edited file(s) after each failed compile.
Instead of a PB Tool updating the *existing Scintilla text and re-compiling on the fly.
*when this is made available per tab.

The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
- Michael Vogel
- Addict
- Posts: 2797
- Joined: Thu Feb 09, 2006 11:27 pm
- Contact:
Re: Controlling the IDE - What features would you like to se
I would like to see the name of the procedure in which the the cursor stays somewhere in the status line. When doing a search command and jump around in a longer source, it may take a while to get things sorted...
Michael
Michael
Re: Controlling the IDE - What features would you like to se
Probably not the right topic...but I agree if instead, the Procedure List is updated to reflect the current procedure being edited. That list always taunts me when I am lost.Michael Vogel wrote:I would like to see the name of the procedure in which the the cursor stays somewhere in the status line. When doing a search command and jump around in a longer source, it may take a while to get things sorted...
Michael

- Michael Vogel
- Addict
- Posts: 2797
- Joined: Thu Feb 09, 2006 11:27 pm
- Contact:
Re: Controlling the IDE - What features would you like to se
oiyyyskywalk wrote:Probably not the right topic...but I agree if instead, the Procedure List is updated to reflect the current procedure being edited. That list always taunts me when I am lost.Michael Vogel wrote:I would like to see the name of the procedure in which the the cursor stays somewhere in the status line. When doing a search command and jump around in a longer source, it may take a while to get things sorted...
Michael

i'm running at 100% cpu load for some weeks already, showing some bugs in my firmware especially when doing multiple threads, sorry for that

Re: Controlling the IDE - What features would you like to se
Freak--I would like to be able to turn on/off debugger windows with greater ease. Perhaps buttons on the toolbar, or at the worst, its own menu (not even a sub-menu of the debugger!).
I would also like a preference to "close all debugger windows" when the program finishes execution.
...And one to save & restore previous windows used.
They are very cumbersome, and it takes too many mouse clicks to get them to show & disappear. I use other debuggers, and they are much more convenient.
Thanks.
I would also like a preference to "close all debugger windows" when the program finishes execution.
...And one to save & restore previous windows used.
They are very cumbersome, and it takes too many mouse clicks to get them to show & disappear. I use other debuggers, and they are much more convenient.
Thanks.
Re: Controlling the IDE - What features would you like to se
I agree with the request of Tenaja, although it is not really relevant to remote controlling the IDE.
Tenaja: To get all debugger windows to disappear, create a keyboard shortcut for the action "kill program". When you press Shift+Ctrl+X (in my case) all debugger windows disappear.
The unfortunate thing is that they aren't recovered when the program is restarted. (Though you can select which windows open by default in the preferences.)
Also being able to adjust the granularity of the purifier when the program is NOT running would be sensible.
Tenaja: To get all debugger windows to disappear, create a keyboard shortcut for the action "kill program". When you press Shift+Ctrl+X (in my case) all debugger windows disappear.
The unfortunate thing is that they aren't recovered when the program is restarted. (Though you can select which windows open by default in the preferences.)
Also being able to adjust the granularity of the purifier when the program is NOT running would be sensible.