Difference between revisions of "User talk:Mariocup"

From Code::Blocks
 
(33 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
==Resize editor window==
 
==Resize editor window==
A double click on a tab of an opened file should enlarge the editor window, and put the Log & Others and the management panel (F2 and Alt+F2) in the background. If you double click again on the tab, the window will be resized to the original size and the panels are visible again.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
+
A double click on a tab of an opened file should enlarge the editor window, and put the Log & Others and the management panel (F2 and Alt+F2) in the background. If you double click again on the tab, the window will be resized to the original size and the panels are visible again.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET) - Saving different layouts and assigning a shortcuts is a workaround.
  
 
==Icons in the Management window==
 
==Icons in the Management window==
Line 11: Line 11:
  
 
==Clipboard History==
 
==Clipboard History==
Editors like vi or Jedit offer clipboards for copy and paste. The user can select in which register is put the content of the clipboard and can paste the content of one of the buffer/register.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
+
If users are writing source code a quite common problem is that your are using copy and paste functionality. Sometimes it could happen that you want to replace two different words with a new string. For example you have a header file and renamed two defines
  
==Search Dialog==
+
#define NAME1 1
The Thread Search dialogue should be added to the normal search dialogue.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
+
#define NAME2 2
  
==Scope for Search==
+
and renamed
The search dialog should offer a filter for the search scope: Function, Class etc.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
+
 
 +
#define NAME_1 1
 +
#define NAME_2 2
 +
 
 +
These defines are a bit mask in status variable and this is used in your source code.
 +
 
 +
var = NAME1 | NAME2;
  
==Window docking==
+
It would be easier in such a case to put NAME_1 and NAME_2 in a clipboard history, that could be displayed e.g. in the log & others window. Now if you reached the line with var you could select NAME1 and make e.g. a double click on the NAME_1 entry in the clipboard history to paste the string and if you select NAME2 the same again for the other entry. Since you could have several entries in the clipboard history it would make sense to sort them alphebatically  (e.g. sort button or column) on demand.
Docking/Undocking of windows in CB with split view (See patch of dmoore for detaching CB windows).--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
 
  
==Incremental Search==
+
For example I am using (http://ditto-cp.sourceforge.net/) ditto clipboard history manager under windows. With this clipboard manager you can type a text in a search field and then you get a filtered clipboard history. This would be a more advanced feature but desirable.
The search for a word will be highlighted within the text. All occurences should be highlighted.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
 
  
==Show value of defines==
+
Since a clipboard entry could be very long I think it should be trunkated to a fix number of characters. I do not know what would be a reasonable length.
For embedded developing often defines are used for bit masks. So it would be helpful if the user puts the cursor over a define and CB will hover the value of the define.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
 
  
==Wrap Mode==
+
==Scope for Search==
If a text is wrapped in several lines (wrap mode) and the cursor is between these lines, then the Home-key will put the cursor in beginning of the first line instead of the start of the current line. This behaviour should be changed.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
+
Add filter for searching with: Class/Struct, Union, Enumeration, Typedef, Function, Method, Variable, Namespace, Comments --[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
 +
 
 +
==Insert Class method Declaration/Implementation==
 +
The context menu in the editor Insert/Class method declaration/implementation shows the list of classes etc. but lacks of the ability of filter mechanism while typing text text like it is available for Goto File or Goto Function.--[[User:Mariocup|Mariocup]]
  
 
==Convert Tab to spaces and vice versa==
 
==Convert Tab to spaces and vice versa==
 
If you mark a text in the editor and select the context menu, then tabs will converted to spaces within the selection.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
 
If you mark a text in the editor and select the context menu, then tabs will converted to spaces within the selection.--[[User:Mariocup|Mariocup]] 11:38, 13 March 2008 (CET)
 +
 +
= Project Management =
 +
== Setting Defines ==
 +
For example if a source file contains different #ifdef constructs, sometimes the user wants to toggle setting or unsetting of a define. This could be done either with introducing a comment character in the compiler define dialogue or using a split view window, where one column could be for setting a define and a second column for unsetting a define. The status of a define could be move between the columns by an arrow.
 +
 +
== Checkbox for Prebuilt and Postbuilt Steps ==
 +
If you are using different postbuilt steps e.g. conversion of executable to a hex-file and followed by a build steps for flash programming it would be desirable either to have a a comment character for disabling postbuilt steps or introducing checkbox for selecting different post built steps.
 +
 +
== Environment per build target ==
 +
E.g. you want to use different compiler version for two build targets. The compiler is parametrise in the toolchain executable as an environment variable GNUGCC that points to different MinGW compiler versions. This could be realised when configurations of environment variables could be assigned for each build target.
 +
 +
== File Explorer in CB ==
 +
The file explorer (dmoore) and its shell extension can be used for flexible tasks like integrating Subversion support with gsvn or TortoiseSVN, diffing files etc. It should be integrated in Codeblocks.
 +
 +
== Hunspell ==
 +
Integrate Hunspell as spell checker as CodeBlocks may be used as text editor too.
 +
 +
== Linker Settings ==
 +
If you link different libraries that contain cylic references, then the linker will issue an error. To solve the problem you can surround the library list by
 +
 +
--start-group <liste libs> --end-group
 +
 +
Could be nice to have a checkbox in the Linker settings that will provide this command.
 +
 +
= Embedded =
 +
Add new tabs in the project settings for setting a predefined list of assembler and linker options (like in the compiler tab).
 +
 +
== Extension Points for options ==
 +
Add mechanism to lock inconsistent selection of compiler, assembler or linker options. E.g. if one march= is selected other march= should be disabled and issue a warning.
 +
 +
== Symbol-Browser ==
 +
The scope of the search in the symbol browse should depend on the user selection Global Functions, Global Variables, Defines etc.
 +
 +
== Show Call Hierarchy ==
 +
Show tree view of the called function and functions that were called before and after it.
 +
 +
== Debugger Console ==
 +
Integrate a gdb Debugger Console in CodeBlocks.
 +
 +
This has already been implemented by oBFusCATed in these days. And added in trunk now.[[User:Ollydbg|Ollydbg]] 09:25, 21 June 2009 (CEST)
 +
 +
== Hardware Breakpoint ==
 +
For embedded programming it is required to add so called hardware breakpoints. To do that gdb settings set only-use-hw-breakpoints 1 are required. These breakpoint should have a different color. Additional it could be a nice feature to be able to disable and enable existing breakpoints.
 +
 +
== Interrupt and Resume Debugger ==
 +
Add button for interrupting and resume in the Debugger.
 +
 +
- Isn't that already supported? (the "Stop" button first interrupts the process and on second-click stops it) - [[User:Mandrav|Mandrav]] 10:06, 13 April 2008 (CEST)
 +
 +
== Section Browser ==
 +
In the gdb console the command "i file" will display the names of the output sections with start and end address. This information could be displayed in a tree view and by selecting the name of the output section you can navigate between sections. This could be useful to set breakpoint in different sections.
 +
 +
== Symbol View in Debugger ==
 +
In some debuggers the symbols of an object (e.g. including startup code) are extracted and displayed in the symbol view. To get a clear view this view should provide a search dialogue and a filter mechanism for display the symbols.
 +
 +
== Mixed Mode ==
 +
Provide a context menu to get a mixed mode (source code and assembler output) in debug mode. This should be possible for alle files within a project. In this view the user can set breakpoints in the assembler lines.
 +
 +
The display in mixed mode can be achived with the use of the GDB/MI interface (see gdb Manual gdb/mi Command Syntax):
 +
Since gdb 6.1 the debugger can perform mi command with the use of interperter-exec command.
 +
 +
interpreter-exec mi "-data-disassemble -f main.cpp -l 2 -- 1"
 +
 +
The passing of --0 or --1 will provide information for mixed mode if it is parsed.
 +
 +
== Tabbed View ==
 +
The windows of breakpoint, variables etc. should dockable in a tabbed view.
 +
 +
== Multiple Watch Windows ==
 +
In complex application with many watches the windows becomes unclear, since that a search function in the watch window would be cool. In addition it is diserable to have multiple watch windows to group some variables in "categories". The name of the watch windows should be editable.
 +
 +
== Write Access to Register, Memory ==
 +
Sometimes it is necessary to modify controller registers of values in the memory, therefore the memory and register view should provide a feature modify he content.
 +
 +
== Special Function Register ==
 +
Architectures like PowerPC or TriCore have tousands of Special Functions Registers, which are not convenient to display them in the debugger. A browse dialogue for special funcions registers would simplify life.
 +
 +
== Multiple Debugger Instances ==
 +
In embedded applications it is necessary to debug different projects (AVR, PowerPC etc.) simultaneously. For this reason the debugger mustn't be stopped when switching between projects.
 +
 +
== Memory Consumption ==
 +
A bar/gauge view of the allocated memory in different output sections.
 +
 +
== Squirell Debug ==
 +
Squirell scripts provide a simple mechanism to add functionality to CodeBlocks. The possibility to debug these scripts in CodeBlocks would be nice.

Latest revision as of 07:25, 21 June 2009

Editor Improvements

Resize editor window

A double click on a tab of an opened file should enlarge the editor window, and put the Log & Others and the management panel (F2 and Alt+F2) in the background. If you double click again on the tab, the window will be resized to the original size and the panels are visible again.--Mariocup 11:38, 13 March 2008 (CET) - Saving different layouts and assigning a shortcuts is a workaround.

Icons in the Management window

If you want to switch the different views in the management window you have to scroll, the tabs (projects, symbols, Files etc.). It would be easier for the user to have different icons like (http://kile.sourceforge.net/showscreenshot.php?id=2) in the margin to switch between the views. If you select e.g. the project icon then the project view will appear. Clicking again on the same icon will collapse the project view.--Mariocup 11:38, 13 March 2008 (CET)

Save copy as

Sometimes user want to make a backup of files or want to save a copy at a different location. Therefore a menu save copy as could be useful.--Mariocup 11:38, 13 March 2008 (CET)

Clipboard History

If users are writing source code a quite common problem is that your are using copy and paste functionality. Sometimes it could happen that you want to replace two different words with a new string. For example you have a header file and renamed two defines

  1. define NAME1 1
  2. define NAME2 2

and renamed

  1. define NAME_1 1
  2. define NAME_2 2

These defines are a bit mask in status variable and this is used in your source code.

var = NAME1 | NAME2;

It would be easier in such a case to put NAME_1 and NAME_2 in a clipboard history, that could be displayed e.g. in the log & others window. Now if you reached the line with var you could select NAME1 and make e.g. a double click on the NAME_1 entry in the clipboard history to paste the string and if you select NAME2 the same again for the other entry. Since you could have several entries in the clipboard history it would make sense to sort them alphebatically (e.g. sort button or column) on demand.

For example I am using (http://ditto-cp.sourceforge.net/) ditto clipboard history manager under windows. With this clipboard manager you can type a text in a search field and then you get a filtered clipboard history. This would be a more advanced feature but desirable.

Since a clipboard entry could be very long I think it should be trunkated to a fix number of characters. I do not know what would be a reasonable length.

Scope for Search

Add filter for searching with: Class/Struct, Union, Enumeration, Typedef, Function, Method, Variable, Namespace, Comments --Mariocup 11:38, 13 March 2008 (CET)

Insert Class method Declaration/Implementation

The context menu in the editor Insert/Class method declaration/implementation shows the list of classes etc. but lacks of the ability of filter mechanism while typing text text like it is available for Goto File or Goto Function.--Mariocup

Convert Tab to spaces and vice versa

If you mark a text in the editor and select the context menu, then tabs will converted to spaces within the selection.--Mariocup 11:38, 13 March 2008 (CET)

Project Management

Setting Defines

For example if a source file contains different #ifdef constructs, sometimes the user wants to toggle setting or unsetting of a define. This could be done either with introducing a comment character in the compiler define dialogue or using a split view window, where one column could be for setting a define and a second column for unsetting a define. The status of a define could be move between the columns by an arrow.

Checkbox for Prebuilt and Postbuilt Steps

If you are using different postbuilt steps e.g. conversion of executable to a hex-file and followed by a build steps for flash programming it would be desirable either to have a a comment character for disabling postbuilt steps or introducing checkbox for selecting different post built steps.

Environment per build target

E.g. you want to use different compiler version for two build targets. The compiler is parametrise in the toolchain executable as an environment variable GNUGCC that points to different MinGW compiler versions. This could be realised when configurations of environment variables could be assigned for each build target.

File Explorer in CB

The file explorer (dmoore) and its shell extension can be used for flexible tasks like integrating Subversion support with gsvn or TortoiseSVN, diffing files etc. It should be integrated in Codeblocks.

Hunspell

Integrate Hunspell as spell checker as CodeBlocks may be used as text editor too.

Linker Settings

If you link different libraries that contain cylic references, then the linker will issue an error. To solve the problem you can surround the library list by

--start-group <liste libs> --end-group

Could be nice to have a checkbox in the Linker settings that will provide this command.

Embedded

Add new tabs in the project settings for setting a predefined list of assembler and linker options (like in the compiler tab).

Extension Points for options

Add mechanism to lock inconsistent selection of compiler, assembler or linker options. E.g. if one march= is selected other march= should be disabled and issue a warning.

Symbol-Browser

The scope of the search in the symbol browse should depend on the user selection Global Functions, Global Variables, Defines etc.

Show Call Hierarchy

Show tree view of the called function and functions that were called before and after it.

Debugger Console

Integrate a gdb Debugger Console in CodeBlocks.

This has already been implemented by oBFusCATed in these days. And added in trunk now.Ollydbg 09:25, 21 June 2009 (CEST)

Hardware Breakpoint

For embedded programming it is required to add so called hardware breakpoints. To do that gdb settings set only-use-hw-breakpoints 1 are required. These breakpoint should have a different color. Additional it could be a nice feature to be able to disable and enable existing breakpoints.

Interrupt and Resume Debugger

Add button for interrupting and resume in the Debugger.

- Isn't that already supported? (the "Stop" button first interrupts the process and on second-click stops it) - Mandrav 10:06, 13 April 2008 (CEST)

Section Browser

In the gdb console the command "i file" will display the names of the output sections with start and end address. This information could be displayed in a tree view and by selecting the name of the output section you can navigate between sections. This could be useful to set breakpoint in different sections.

Symbol View in Debugger

In some debuggers the symbols of an object (e.g. including startup code) are extracted and displayed in the symbol view. To get a clear view this view should provide a search dialogue and a filter mechanism for display the symbols.

Mixed Mode

Provide a context menu to get a mixed mode (source code and assembler output) in debug mode. This should be possible for alle files within a project. In this view the user can set breakpoints in the assembler lines.

The display in mixed mode can be achived with the use of the GDB/MI interface (see gdb Manual gdb/mi Command Syntax): Since gdb 6.1 the debugger can perform mi command with the use of interperter-exec command.

interpreter-exec mi "-data-disassemble -f main.cpp -l 2 -- 1"

The passing of --0 or --1 will provide information for mixed mode if it is parsed.

Tabbed View

The windows of breakpoint, variables etc. should dockable in a tabbed view.

Multiple Watch Windows

In complex application with many watches the windows becomes unclear, since that a search function in the watch window would be cool. In addition it is diserable to have multiple watch windows to group some variables in "categories". The name of the watch windows should be editable.

Write Access to Register, Memory

Sometimes it is necessary to modify controller registers of values in the memory, therefore the memory and register view should provide a feature modify he content.

Special Function Register

Architectures like PowerPC or TriCore have tousands of Special Functions Registers, which are not convenient to display them in the debugger. A browse dialogue for special funcions registers would simplify life.

Multiple Debugger Instances

In embedded applications it is necessary to debug different projects (AVR, PowerPC etc.) simultaneously. For this reason the debugger mustn't be stopped when switching between projects.

Memory Consumption

A bar/gauge view of the allocated memory in different output sections.

Squirell Debug

Squirell scripts provide a simple mechanism to add functionality to CodeBlocks. The possibility to debug these scripts in CodeBlocks would be nice.