[Harbour] Re: hbIDE - Let's review
francesco perillo wrote: This morning I attended a visual studio 2010 presentation and the speaker showed us the power of XNA framework (for game development). He had a pane on the left with a list box containing code snippets. Double-clicking on one item made VS insert that code (multiline code, only the first line shown in the listbox) in the source code. He used this to insert a group of lines in order to explain us what they were for I believe that this feature is nice and can be easily accomplished. To populate the code snippet repository you can make a selection in the source code and then drag it in the list box... only the first line is shown in the list box. Current implementation #0: - To create: You open the Snippets dialog, You create one with Add New and provide it a name, A new entry is there in the list with blank snippet, You typein the code or can Get Selection, You need to Update to save it permanently. To execute: You press CTRL+K, menu appears, You select and snippet is inserted. The proposed implementatio #1: --- To create: Keep #0 implementation as is, in addition You select a snippet, Open context menu with right-click and select Save as Snippet You are asked for a Name and that's it, does not matter dialog is open or not. To execute: Keep #0 implementation as is, in addition Provide a list on the left dock area and in between Projects and Editor Tabs containing defined snippets. You double click one and that is inserted. Dragging the selection directly without a name is, IMO, very confusing and over the time you will loose control over it. You always remember a name for longer periods. The proposed implementatio #2: --- ??? On Friday I attented a Spring framework course, using Eclipse I have to say that Eclipse is a very nice tool and its integration with Java language is really good. Today I also saw VS2010 in action and it is also a really good IDE. Both have very powerfull intellisense, syntax checking (no coloring, real syntax checking) Now, can this feature be created in hbide ? ... actually a sort of compiler is already present in a harbour compiled executable since you may need to compile codeblock at runtime, so when CR button is pressed and no ; at the EOL is present, we can pass the line to the compiler and check for validity... you don't have to execute the code, just do syntax checking This is quiet easy if it is only to see if it compiles. This is what you are asking for ? If yes, then there are few facts which should be cleared beforehand: 1. How to handle IF abc == 212 DO CASE DO WHILE abc 100 etc cases. Will these compile? Also multiline comments. I mean how to determine if a line is macro compiled properly. Above will not compile, not tested, but are valid statements. How Eclipse handles them ? - enjoy hbIDEing... Pritpal Bedi _a_student_of_software_analysis__design_ -- View this message in context: http://n2.nabble.com/hbIDE-Let-s-review-tp4717833p4729754.html Sent from the harbour-devel mailing list archive at Nabble.com. ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
[Harbour] Re: hbIDE - Let's review
Massimo Belgrano wrote: I have proposted an array structure for collect Dynamic defined wizard for visual define Flag like follow screenshot starting from array/xml easy to define for hbide,harbour {/a,automatic memvar} {/w,warning level,{ {0,warning level0},{1,warning level1 default},{0,warning level0} } } {/b,include debug info} i can finish this array if in your opinion is good way If contain 3 dimension need a combobox and third dimension is used for validate easy extend to other language http://old.nabble.com/Re:-SF.net-SVN:-harbour-project:-14049--trunk-harbour-p27767006.html Ok, you can proceed. Also include short description to be presented when user hovers over the option plus the mode it will be fetched, i.e., Combo, edit, checkbox only. Having only opened project with his source (like xmate) Open recent file under request /button I could not follow you, explain in a better way. I seems to be little dumb now-a-days. The capability are present in hbdebug.lib ,execute steep by step, breakpoint,whatch point,Inspect variables,Inspect workarea (dbf) but integrated in hbide to be more productive I am not yet concentrating on debugger at all. More important things first. will be xmate be a basic with clipper.env,xbase.env? This is the whole concept of hbide.env. It needs to be extended the intelligent way. Opening via command line as hbide test.hbp .or hbide test.prg so hbide will be also registred to open hbp/prg Sorry, I do not like this approach. - enjoy hbIDEing... Pritpal Bedi _a_student_of_software_analysis__design_ -- View this message in context: http://n2.nabble.com/hbIDE-Let-s-review-tp4717833p4729793.html Sent from the harbour-devel mailing list archive at Nabble.com. ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: hbIDE - Let's review
On Sun, Mar 14, 2010 at 1:19 AM, Pritpal Bedi bediprit...@hotmail.com wrote: You always remember a name for longer periods. Tomorrow I will ask my co-workers to show me this feature... actually I don't know if it is a built-in feature or a plugin... I will tell you how it really works in VS to populate the code snippet list. I see this code snippet repository something like a sort of clipboard on steroids... something that should be really quick and easy to use... so don't ask a name for the code, just show the first non-blank line and, optionally, give the possibility to assign a name to it... Of course, code snippet repository must be saved between editing sessions This is quiet easy if it is only to see if it compiles. I keep thinking about it and I believe that harbour is a more difficult code to parse real-time... not impossible, but difficult.. In java (I know very little of Java) a class must be contained in one source file and they may call other classes that are in the same package. In order to use classes from other packages you have to import them. In Harbour you can have several classes in one source code and there is no package concept... Java is a typed language and variables must be declared before use, so you if you have static Object o; when you type o. in the editor the intellisense can show all the proper method... In harbour you may have valid code that is o:method and o is never ever declared in the source file it may be a public/private from some other place ! In C#4 ms introduced the dynamic data type, a type-less variable type and infact intellisense can't work on them ! This is quiet easy if it is only to see if it compiles. This is what you are asking for ? It may be a start 1. How to handle IF abc == 212 DO CASE DO WHILE abc 100 etc cases. Will these compile? If you compile one line they should compile AS ONE LINE, they will not in a file -level Also multiline comments. I mean how to determine if a line is macro compiled properly. Macro is a .big. problem Above will not compile, not tested, but are valid statements. How Eclipse handles them ? As I said they will compile as single lines, but when the compiler reaches the EOF it will say that there is missing ENDIF, ENDCASE, ENDDO... Another point is that preprocessor mangle the source code and DO WHILE - while; ENDIF,ENDDO, ENDCASE - end and so on... CLASS definition is completely transformed in harbour code... So, it's a real complicated matter... It's not impossible but very difficult to achieve ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
[Harbour] Re: hbIDE - Let's review
Hi Pritpal My congrats for your work. +1 [* 1000] Pritpal Bedi wrote: what more is needed, IMHO good IDE has integrated remote debugger. There is XDEBUG protocol, which is mainly used for PHP debugging. But it could be implemented for other languages too. (server part and client part). Or maybe some other protocol ? There are already many XDEBUG clients (KOMODO,ECLIPSE,Notepad++ ...). It' s quite a big project, and server part should be a project of its own. On the client side, there can be many implementations (console debugger, hbIDE integrated,...) BRGDS Francek - brgs FranÄek Prijatelj -- View this message in context: http://n2.nabble.com/hbIDE-Let-s-review-tp4717833p4720572.html Sent from the harbour-devel mailing list archive at Nabble.com. ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: hbIDE - Let's review
2010/3/11 Pritpal Bedi bediprit...@hotmail.com Massimo Belgrano wrote: Unfinished the sub project/multi project implementation Did you tried ? IMO whatever is defined in .hbp is presented to hbMK2, which has the capability of building sub-projects, Viktor, update me on this issue. I remember http://www.mail-archive.com/harbour@harbour-project.org/msg21625.html http://www.mail-archive.com/harbour@harbour-project.org/msg21625.html visual define harbour/hbmk flag Visual design is easy, but what should go inside, I am not sure. Are you saying that all those flags, placable in .hbp and forwarded on command-line be fetched visually ? If yes, then I need someone to provide me the list of all those flags, and the syntax which must be verified. I have proposted an array structure for collect Dynamic defined wizard for visual define Flag like follow screenshot starting from array/xml easy to define for hbide,harbour {/a,automatic memvar} {/w,warning level,{ {0,warning level0},{1,warning level1 default},{0,warning level0} } } {/b,include debug info} i can finish this array if in your opinion is good way If contain 3 dimension need a combobox and third dimension is used for validate easy extend to other language http://old.nabble.com/Re:-SF.net-SVN:-harbour-project:-14049--trunk-harbour-p27767006.html User defined keyboard mapping and user menu Yep, but it will be the last action. All other publick actions needs to be known beforehand before initiating this process. A must have... is on my TODO list. Project tree require too many click I have tried to simplify it and based on folders, what other methodology you suggest ? Having only opened project with his source (like xmate) Open recent file under request /button when i select a souce of project automatically select this project as current Understand that in hbIDE source editing and project management are two separate actions. BTW what purpose will it solve ? Be clear what project be compiled Made possible add documentation to harbour using hbide I was waiting for Vailton's or Bacco's applications. Ok, I will provide it here in hbIDE soon. Are anybody willing to have embedded documentation in sources ? And for that matter, such documentation will be pulled as prototypes are pulled and presented in same way as Harbour help does. Good Simple keystroke for open harbour help (f1) and go to selected function How do you want F1 to work ? Either of the two actions can be carried out, open the help dialog and if current cursor is on some Harbour function name, that is brought to focus. Right ? mark breakpoint visual debug I have least knowledge of debugger feature in Harbour. Someone has to help me in this direction. * * The capability are present in hbdebug.lib ,execute steep by step, breakpoint,whatch point,Inspect variables,Inspect workarea (dbf) but integrated in hbide to be more productive i suggest see intresting The xailer debugger http://www.ciber-tec.com/xdebugeng.htm http://www.ciber-tec.com/xdebugeng.htmThe xharbour.com debugger http://www.xharbour.com/index.asp?page=products_addon_xdebugger The visual studio debugger http://www.startvbdotnet.com/forms/debug1.aspx column mode in editor This is the toughest part in hbIDE. In the past I have failed on few tries. Still I do not know how to. Infact it needs extended lines which I have no clues, how to in Qt. extend intellisense capabillty Please jot down all what should be there. Prototype tooltip and functions completion is what I know of, what others. Follow are requested from other user that i have received via mail is Possible use with xharbour or xbase++? Yes, this is next logical step to make hbIDE more useful. Anybody to help in this direction ? will be xmate be a basic with clipper.env,xbase.env? is possible use via command line for edit a project or a prg or rc? I do not understand what you mean by command-line. Once hbIDE is on, bring any source you want to edit, what is the issue. Opening via command line as hbide test.hbp .or hbide test.prg so hbide will be also registred to open hbp/prg Is possible define the structure of file like fromfoxpro modi stru command? Integrate Dot prompt dbase functionaly I need detailed analysis what you are asking here? Dot prompt ( hbRUN.exe ) can be implemented though, I will try. Good Imo immediate windows is also usefull for debugging scope as in visual studio http://z.about.com/d/visualbasic/1/0/W/2/ecvbai0305-4.gif -- Massimo Belgrano ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
[Harbour] Re: hbIDE - Let's review
Massimo Belgrano wrote: Unfinished the sub project/multi project implementation Did you tried ? IMO whatever is defined in .hbp is presented to hbMK2, which has the capability of building sub-projects, Viktor, update me on this issue. more simple create project like visual studio one click create folder,prg,hbp Ok. visual define harbour/hbmk flag Visual design is easy, but what should go inside, I am not sure. Are you saying that all those flags, placable in .hbp and forwarded on command-line be fetched visually ? If yes, then I need someone to provide me the list of all those flags, and the syntax which must be verified. User defined keyboard mapping and user menu Yep, but it will be the last action. All other publick actions needs to be known beforehand before initiating this process. A must have... is on my TODO list. Project tree require too many click I have tried to simplify it and based on folders, what other methodology you suggest ? automatic tag of project function lookup for search in seleted project It is easy but as I explained earlier, it can be heavy. I think we should wait for other users comments. when i select a souce of project automatically select this project as current Understand that in hbIDE source editing and project management are two separate actions. BTW what purpose will it solve ? Made possible add documentation to harbour using hbide I was waiting for Vailton's or Bacco's applications. Ok, I will provide it here in hbIDE soon. Are anybody willing to have embedded documentation in sources ? And for that matter, such documentation will be pulled as prototypes are pulled and presented in same way as Harbour help does. Simple keystroke for open harbour help (f1) and go to selected function How do you want F1 to work ? Either of the two actions can be carried out, open the help dialog and if current cursor is on some Harbour function name, that is brought to focus. Right ? mark breakpoint visual debug I have least knowledge of debugger feature in Harbour. Someone has to help me in this direction. column mode in editor This is the toughest part in hbIDE. In the past I have failed on few tries. Still I do not know how to. Infact it needs extended lines which I have no clues, how to in Qt. extend intellisense capabillty Please jot down all what should be there. Prototype tooltip and functions completion is what I know of, what others. Follow are requested from other user that i have received via mail is Possible use with xharbour or xbase++? Yes, this is next logical step to make hbIDE more useful. Anybody to help in this direction ? is possible use via command line for edit a project or a prg or rc? I do not understand what you mean by command-line. Once hbIDE is on, bring any source you want to edit, what is the issue. Is possible define the structure of file like fromfoxpro modi stru command? Integrate Dot prompt dbase functionaly I need detailed analysis what you are asking here? Dot prompt ( hbRUN.exe ) can be implemented though, I will try. - enjoy hbIDEing... Pritpal Bedi _a_student_of_software_analysis__design_ -- View this message in context: http://n2.nabble.com/hbIDE-Let-s-review-tp4717833p4719223.html Sent from the harbour-devel mailing list archive at Nabble.com. ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
[Harbour] Re: hbIDE - Let's review
Viktor Szakáts wrote: 1) To fix the foundation and once and for all the GPFs on all platforms / compiler supported by hbide / QT. Here, perhaps, we need Przemek's help. I did whatever I could thought. I have requested Przemek for some clarifications, the answer to which may lead to resolving this issue. 2) To fix .ini file handling to be standard. 3) Related: Merge dangling secondary .ini and similar config files into the central .ini. Why we are concerned about these points, BTW ? It is an application and developer knows best his abilities/shortcomings. This is how I could implement all the coordinates I needed. Cassle is built and changing the foundation is difficult if not impossible. All other config files can makeup into the central file. because of their different formats. .tag, .skl, .env has some specific differences. May be someone can help to merge them. 4) Related: To solve storing settings on *nix platforms. On these platforms you don't store settings in .ini file in current dir. I do not know the behavior of nixes in this regard. If .ini extension is the concern, we can change them to somethng else. Some nix user has to jump in. 5) To use hbmk2 for format conversion. This is not a big issue. I will do in next commit. 6) To make the decision: .ui or .uic and stick to only one. .uic. It is the only format in use currently. 7) Future: To honor formatting and original comments when saving .hbp files. Yep, absolutely needed. - enjoy hbIDEing... Pritpal Bedi _a_student_of_software_analysis__design_ -- View this message in context: http://n2.nabble.com/hbIDE-Let-s-review-tp4717833p4719288.html Sent from the harbour-devel mailing list archive at Nabble.com. ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: hbIDE - Let's review
Hi, 1) To fix the foundation and once and for all the GPFs on all platforms / compiler supported by hbide / QT. Here, perhaps, we need Przemek's help. I did whatever I could thought. I have requested Przemek for some clarifications, the answer to which may lead to resolving this issue. 2) To fix .ini file handling to be standard. 3) Related: Merge dangling secondary .ini and similar config files into the central .ini. Why we are concerned about these points, BTW ? Because this is what can make hbide different from the other (loosely engineered) ide's that one can find on the internet. Because it shows that you/we pay attention to details, and care about the product. Because this is the spirit we follow when designing other parts of Harbour. Because current static update method doesn't play when in multiuser scenarios. (f.e. hbide is shared on a network drive, or used in a terminal server environment) Just to name four. BTW, you asked for improvements requests, and this one is IMO an important one. It is an application and developer knows best his abilities/shortcomings. This is how I could implement all the coordinates I needed. Cassle is built and changing the foundation is difficult if not impossible. Never impossible. Now it's a straight no brainer as not many ppl are using hbide yet. All other config files can makeup into the central file. because of their different formats. .tag, .skl, .env has some specific differences. May be someone can help to merge them. It's not an 'all or nothing' thing. Just don't use additional files unless absolutely necessary, that's all. Did you try HB_INI*() functions? BTW, we're not even obliged to use a relatively complicated .ini format. A simple flat format is much easier to handle. F.e. this one also stays compatible with .ini standard: F.e.: --- [hbide] global.MainWindowGeometry=-4,-4,1291,814, global.ProjectTreeVisible=1 global.FunctionListVisible=0 global.RecentTabIndex=-1 global.CurrentProject= global.GotoDialogGeometry= global.FindDialogGeometry= global.CurrentTheme=City Lights global.CurrentCodec= global.PathMk2= global.PathEnv= global.CurrentEnvironment= global.CurrentFind= global.CurrentFolderFind= global.CurrentReplace= global.CurrentView= Stats CurrentHarbour= PROJECTS=F:\work\harbour\harbour\contrib\hbide\config.hbp,... FILES= RECENTFILES=f:/work/harbour/harbour/contrib/hbide/idetags.prg;f:/work/harbour/harbour/contrib/hbide/ideeditor.prg;f:/work/harbour/harbour/contrib/hbide/idedocks.prg RECENTPROJECTS=f:/work/harbour/harbour/contrib/hbide/hbide.hbp --- You can easily add the QT settings to that format. 4) Related: To solve storing settings on *nix platforms. On these platforms you don't store settings in .ini file in current dir. I do not know the behavior of nixes in this regard. If .ini extension is the concern, we can change them to somethng else. Some nix user has to jump in. It's not the extension, it's the placement. Probably '${HOME}/.hbide' should be the dir to store .ini-like stuff on *nix. On Windows, this could be '%APPDATA%\.hbide' dir, on OS/2 I don't know. As for resources stuff, I don't know, probably best would be to incorporate all of them right into the executable in some ways, otherwise hbide will need an installer to place these to the expected on platform location. Or some *nix users will give better ideas. 5) To use hbmk2 for format conversion. This is not a big issue. I will do in next commit. Thanks. 6) To make the decision: .ui or .uic and stick to only one. .uic. It is the only format in use currently. I can see .ui files in SVN. If they are not used, maybe they can be deleted to avoid confusion. 7) Future: To honor formatting and original comments when saving .hbp files. Yep, absolutely needed. OK. Brgds, Viktor ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: hbIDE - Let's review
Did you try HB_INI*() functions? No, never, I have my own code. I will try. BTW, we're not even obliged to use a relatively complicated .ini format. A simple flat format is much easier to handle. F.e. this one also stays compatible with .ini standard: F.e.: --- [hbide] global.MainWindowGeometry=-4,-4,1291,814, global.ProjectTreeVisible=1 global.FunctionListVisible=0 global.RecentTabIndex=-1 global.CurrentProject= global.GotoDialogGeometry= global.FindDialogGeometry= global.CurrentTheme=City Lights global.CurrentCodec= global.PathMk2= global.PathEnv= global.CurrentEnvironment= global.CurrentFind= global.CurrentFolderFind= global.CurrentReplace= global.CurrentView= Stats CurrentHarbour= PROJECTS=F:\work\harbour\harbour\contrib\hbide\config.hbp,... FILES= RECENTFILES=f:/work/harbour/harbour/contrib/hbide/idetags.prg;f:/work/harbour/harbour/contrib/hbide/ideeditor.prg;f:/work/harbour/harbour/contrib/hbide/idedocks.prg RECENTPROJECTS=f:/work/harbour/harbour/contrib/hbide/hbide.hbp --- You can easily add the QT settings to that format. It looks promising, but what if line length of some values increases the supported lenth. We only need to deal with 32-bit systems (minimum), so line length shouldn't be a problem, just allocate enough room for a line. It's not the extension, it's the placement. Probably '${HOME}/.hbide' should be the dir to store .ini-like stuff on *nix. On Windows, this could be '%APPDATA%\.hbide' dir, on OS/2 I don't know. Someone has to jump in, even I do not know. This part I know, so you can just listen to it :) As for resources stuff, I don't know, probably best would be to incorporate all of them right into the executable in some ways, otherwise hbide will need an installer to place these to the expected on platform location. Or some *nix users will give better ideas. For resources to be inside exe, we need to compile and/or link with Qt's own engine. There is no other way. This is one point I could never resolve. I see, that's not very useful for us then. If there is a way to load .png files from memory, we could create simple converted from .png to .prg level strings and they could be loaded directly from those. Similar could be done with .ui files. If they could be converted (or just simply enveloped) to .prg files, they could just be compiled into binary and loaded 'from memory'. I can see .ui files in SVN. If they are not used, maybe they can be deleted to avoid confusion. No, it cannot be deleted. .ui is the feed for Qt Designer, .uic is the feed for Harbour. It is basically a .cpp which I parse and convert to object. For changes we always need .ui. :( Sounds bad. Then at least they should be moved to somewhere else, to make it easy to tell apart source and distribution files. Probably .ui files should be best moved to /contrib/hbide directly. Brgds, Viktor ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
[Harbour] Re: hbIDE - Let's review
Hi Pritpal My congrats for your work. Pritpal Bedi wrote: what more is needed, IMHO good IDE has integrated remote debugger. There is XDEBUG protocol, which is mainly used for PHP debugging. But it could be implemented for other languages too. (server part and client part). Or maybe some other protocol ? There are already many XDEBUG clients (KOMODO,ECLIPSE,Notepad++ ...). It' s quite a big project, and server part should be a project of its own. On the client side, there can be many implementations (console debugger, hbIDE integrated,...) BRGDS Francek - brgs Franček Prijatelj -- View this message in context: http://n2.nabble.com/hbIDE-Let-s-review-tp4717833p4720572.html Sent from the harbour-devel mailing list archive at Nabble.com. ___ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour