* contrib/hbide/edit.prg
+ Implemented: <Class Declaration> complete with class name.
CLASS abc .
OR
CREATE CLASS abc .
=>
CREATE CLASS abc .
DATA xDummy INIT NIL
METHOD new()
METHOD create()
ENDCLASS
METHOD new() CLASS abc
RETURN Self
METHOD create() CLASS abc
RETURN Self
* contrib/hbide/dict.prg
% Added: some more data members, q work-in-progress.
* contrib/hbide/themes.prg
* Minor.
* contrib/hbide/setup.ui
* contrib/hbide/edit.prg
* contrib/hbide/saveload.prg
+ Added: <Setup><HbIDE Setup><Intelli-sense><Function Declaration>
To Toggle [LOCAL] [YES], [RETURN] [YES], [SEPERATOR] [YES], [DOCUMENTATION] [NO] [TOBE]
FUNCTION|function|Function|fUnCtioN .
=>
FUNCTION .
LOCAL
RETURN
/*....................*/ // User defined separator line
// and a blank line after the separator
* contrib/hbide/edit.prg
! Fixed: undo stack was behaving weired once statement structures
were inserted.
% Changed: the behaviour of "Embrace Lines on Same Indent", activable
from <Setup><HbIDE Setup><Intelli-sense>, not to embrace if
immediate next line is empty on. Here is the illustration:
ORIGINAL:
DO WHILE .T.
abc := 12
bcd += 2
IF bcd > 200
EXIT
ENDIF
ENDDO
DO WHILE .T.
IF . // type IF . ( dot means your cursor )
abc := 12 // note, there is no blank line in between
bcd += 2 // IF . and abc := 12
IF bcd > 200
EXIT
ENDIF
ENDDO
DO WHILE .T.
IF . // Converted to ( dot means your cursor )
abc := 12
bcd += 2
IF bcd > 200
EXIT
ENDIF
ENDIF
ENDDO
DO WHILE .T.
IF . // type IF . ( dot means your cursor )
// note, there is a blank line in between
abc := 12 // IF . and abc := 12
bcd += 2
IF bcd > 200
EXIT
ENDIF
ENDDO
DO WHILE .T.
IF . // Converted to ( dot means your cursor )
ENDIF
abc := 12
bcd += 2
IF bcd > 200
EXIT
ENDIF
ENDDO
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
% Code cleanup.
* contrib/hbide/setup.ui
+ Added: a new page <Intelli-sense> next to <General>.
It holds the user-defined values for next level of
source editing intellisense. Read below.
* contrib/hbide/edit.prg
+ Implemented: most of the next level of editing intellisense
points are configurable by the developer. These include:
1. To activate the closing structure of a statements
as a whole lot [YES]
2. To toggle IF/ENDIF [YES] ELSE [NO] Embrace Lower Lines [NO]
3. To toggle FOR/NEXT [YES]
4. To toggle DO WHILE/ENDDO [YES]
5. To toggle DO CASE/ENDCASE [YES] # CASES [3] OTHERWISE [NO]
6. To toggle SWITCH/ENDSWITCH [YES ] # CASES [3] OTHERWISE [NO]
EXIT on same line [NO]
7. To toggle ADD CLOSING PARENTHESIS of a function [NO]
8. To toggle INSERT SPACES - () >= ( . ) [NO]
9. To toggle ADD CODEBLOCK BODY - {|. => {|.| } [NO]
10.To toggle ADD SPACE AFTER := [NO]
11.To toggle ALIGN := WITH PREVIOUS LINES [NO] [TOBE]
12.To toggle FORMAT LINE AFTER ENTER [NO] [TOBE]
; Please forward your suggessions.
* contrib/hbide/edit.prg
+ Included: qtcore; qtgui; qtnetwork; functions list to be
properly cased while writing the code.
; QUESTION: .hbx files contain upper-cased function list,
the only exception is harbour.hbx where functions are
properly cased. Is there a way to get .hbx(es) with
properly cased functions ?
* contrib/hbide/edit.prg
+ Implemented: auto insertions of statements closing structure.
IF, FOR, DO CASE, DO WHILE, SWITCH
The moment you type SPACE after the statement, the next
elements are inserted automatically. The cursor stays at
where . is shown:
IF . Is it logical to insert ELSEIF ?
ENDIF
FOR .
NEXT
DO CASE
CASE . CASE can be configured to
CASE allign the DO CASE indentation
CASE or one more tab to the right.
OTHERWISE Also number of CASE stements.
ENDCASE
DO WHILE .
ENDDO
SWITCH . CASE can be configured to
CASE allign the SWITCH indentation
EXIT or one more tab to the right.
CASE Also number of CASE stements.
EXIT
CASE
EXIT
ENDSWITCH
* contrib/hbide/edit.prg
* contrib/hbide/hbide.qrc
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/qth/HBQPlainTextEdit.qth
% Changed: the way function prototype was being displayed.
It now take use of QToolTip() instead of QWidget/QLabel
combination tied to editor's viewport.
- contrib/hbide/hbfunc.txt
- Removed: hbfunc.txt
* contrib/hbide/edit.prg
% Applied: harbour.hbx instead of hbfunc.txt provided listing
of Harbour core functions. Thanks Viktor for the tip.
TODO: set right the camel casing of some function groups,
for example, dbSetOrder => DbSetOrder and its group.
* contrib/hbide/hbfunc.txt
% Extracted: function names from harbour.hbx and applied capitalization
for few groups. I really had never viewed harbour.hbx, an
excellent repository what Harbour contains.
+ contrib/hbide/hbfunc.txt
* contrib/hbide/hbide.qrc
+ Added: Harbour core's functions list with proper capitalization.
Please review and add/delete/change as per set standards.
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
* contrib/hbide/saveload.prg
+ Implemented: auto case conversion of Harbour functions as per
disctionary which is contained inside HbIDE executable as a
resource.
+ Implemented: auto-tab placement based on the Harbour keyword.
So if you start typing a keyword, say at col 4, and tab-spaces
are set to 3, then that keyword will automatically placed at
column 3.
+ Implemented: logical text operators to be converted to uppercase.
These are .OR. .AND. .NOT. .F. .T.
NOTE: this commit also improves the speed of editing, plus corrects
the function names as per Harbour standards. So if a Harbour
function is called you need not to pay attention in which way
you are writing. You simply need to remember that opening brace
must follow the end of function which triggers the corrective
action. Regression is possible to some extent, please report.
You can also forward suggessions to improve the editing part.
* contrib/hbide/sources.prg
% Remoded: redundant code parts and organized with more options.
* contrib/hbqt/qtgui/hbqtgui.hbx
* contrib/hbqt/qtgui/qth/filelist.hbm
+ contrib/hbqt/qtgui/qth/QToolTip.qth
+ Added: class QToolTip(). Note that this class is usable from within
QEvent_ToolTip signal which will post QHelpEvent() object like:
oWidget:connect( QEvent_ToolTip, {|oEvent| ::execEvent( QEvent_Help, oEvent ) } )
Then
METHOD myClass:execEvent( nEvent, oEvent )
LOCAL oToolTip
IF oEvent:type() == QEvent_ToolTip
oToolTip := QToolTip()
oToolTip:setText( "some other text" )
RETURN .T. /* To stop the event chain */
ENDIF
RETURN .F.
* contrib/hbide/tools.prg
+ Implemented: removal of a editng panel with confirmation.
All modified sources will be confirmed to be saved if modified
before a panel is removed.
! Fixed: if order has not been changed, alert message requesting
re-loading HbIDE will not be displayed. Before the message was
displayed in every click on <OK> button.
+ contrib/hbide/panels.ui
* contrib/hbide/hbide.hbp
+ Added: new widget to manage editing panels.
* contrib/hbide/docks.prg
* contrib/hbide/saveload.prg
* contrib/hbide/tools.prg
+ Implemented: 1. to reorder editing panels : drag & drop mechanism
2. to define panel tabs shape : rounded | triangular
3. to define panel tabs position : top | left | bottom | right
Activation is through <Panels> icon on top-toolbar of editing area.
* contrib/hbide/resources/b_18.png
* contrib/hbide/resources/b_19.png
* contrib/hbide/resources/b_2.png
* contrib/hbide/resources/b_5.png
* contrib/hbide/resources/b_8.png
% Reordered: to put more glamour to HbIDE.
* contrib/hbide/edit.prg
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
! Fixed: tab key was misbehaving on an empty line.
! Fixed: while in column mode, if the original text cursor was
before logical cursor, insertion of any key was clearing the selection.
An annoying bug it was.
* contrib/hbide/misc.prg
% use core API instead of inferior local implementation
* ChangeLog
! fixed mistyped ChangeLog entry headers in previous
two commits
+ bin/hbfind.hb
+ added script to list and/or find public symbols in
Harbour core and contribs (and some extras).
To list all symbols (functions, classes):
$ hbrun bin/hbfind.hb
To find string in symbols (case-insensitive):
$ hbrun bin/hbfind.hb vol
* contrib/hbide/projectwizard.prg
! '.hbptmplt' extension renamed to '.tpl'. First it doesn't
have anything to do with hbmk2's .hbp file. It's
reinvented version of a small subset of hbmk2 features using
a brand new and incompatible, HBIDE and feature-specific
format. 'tpl' is the standard abbreviation for 'template'.
; I suggest for any users needing such feature to simply stick
with .hbm and .hbc files which were developed with the exact
same idea in mind, but they fully support all hbmk2 features
they work on all platforms and they work with any IDEs and
in command line mode:
--- mydefaultprojectsetting.hbm
-w3 -es2
-warn=yes
-gtwvt{win}
# etc etc
---
or
--- mydefaultprojectsettings.hbc
prgflags=-w3 -es2
warn=yes
gt=wvt{win}
# etc etc
---
then:
--- myproject.hbp
mydefaultprojectsetting.hbm
---
or
--- myproject.hbp
mydefaultprojectsetting.hbc
---
respecitvely.
* contrib/hbide/projectwizard.prg
* contrib/hbide/projectwizard.ui
+ Implemented: the contents entered in the "New Project Wizard" are
saved in _thePathdesignatedForHbp_.hbptmplt. This will be the
intermediate file from where .hbp will be created as per standardards
adopted so far and then loaded in HbIDE. If such template already
exists on the .hbp path asked for, it will be loaded in the
interface. How and what action will ask for loading/saving may
change. for now examine the template file.
+ contrib/hbtip/tests/test01.prg
* contrib/hbtip/httpcli.prg
! RTE was happening in class TIPClientHTTP when calling method post() after calling method setCookie():
Error BASE/1123 Argument error: HB_HKEYAT
Called from HB_HKEYAT(0)
Called from TIPCLIENTHTTP:GETCOOKIES(0)
This error happens because in r7888 (changelog: 2007-10-30 19:45 UTC+0100 Lorenzo Fiorini (lorenzo.fiorini/at/gmail.com))
the function HGetKeys() was replaced by HB_HKeyAt() and the correct is HB_HKeys().
; Report, patch and description by Raphael Gozzo. Thank you.
* contrib/hbhttpd/hbhttpd.hbc
+ added comment about HB_HTTPD_OPENSSL (similar purpose
as HB_TIP_OPENSSL)
* utils/hbmk2/hbmk2.prg
+ added env= .hbc command to be able to control envars
also from .hbc files.
- contrib/hbhttpd/hbhttpds.hbc
- contrib/hbtip/hbtipssl.hbc
- deleted alternate .hbc files that enabled OpenSSL
flavor of these libs. Autofind didn't work with these.
Use HB_[HTTPD|TIP]_OPENSSL=yes envvar setting to enable
these. You can use -env: hbmk2 option or env= .hbc
command to enable it, so f.e. hbtipssl.hbc can be
emulated by this .hbc file:
-- hbtipssl.hbc
env=HB_TIP_OPENSSL=yes
hbtip.hbc
--
* contrib/hbide/hbide.qrc
+ contrib/hbide/resources/split.png
+ contrib/hbide/resources/split_close.png
+ contrib/hbide/resources/split_h.png
+ contrib/hbide/resources/split_v.png
+ Added: more images representing edit-instance split actions in
context menu of any editing instance.
* contrib/hbide/actions.prg
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
* Implementation of above images into the code.
* contrib/hbide/hbide.qrc
+ contrib/hbide/resources/b_1.png
+ contrib/hbide/resources/b_10.png
+ contrib/hbide/resources/b_11.png
+ contrib/hbide/resources/b_12.png
+ contrib/hbide/resources/b_13.png
+ contrib/hbide/resources/b_14.png
+ contrib/hbide/resources/b_15.png
+ contrib/hbide/resources/b_16.png
+ contrib/hbide/resources/b_17.png
+ contrib/hbide/resources/b_18.png
+ contrib/hbide/resources/b_19.png
+ contrib/hbide/resources/b_2.png
+ contrib/hbide/resources/b_20.png
+ contrib/hbide/resources/b_3.png
+ contrib/hbide/resources/b_4.png
+ contrib/hbide/resources/b_5.png
+ contrib/hbide/resources/b_6.png
+ contrib/hbide/resources/b_7.png
+ contrib/hbide/resources/b_8.png
+ contrib/hbide/resources/b_9.png
+ Added: face-uplifting images.
* contrib/hbide/saveload.prg
* contrib/hbide/docks.prg
% Changed: editing panels dot images. now these are more crsip.
Older images are retained for some other purposes.
This has given a fresh look to HbIDE interface.
% Changed: the docking behavior on right docking area to accept any
arrangement. before it was accepting only tabbed and horizonal
nesting. This change originated to give strength to recently
implemented to swicth multiple views with a click.
+ contrib/hbide/projectwizard.prg
! Fixed: where collapsing/expanding of source-type nodes was stopped
functioning by click on +/- button.
* contrib/hbide/docks.prg
+ IdeSource Manager Panels made movable to change their position.
Compatible to Qt 4.8.
* contrib/hbide/main.prg
+ Complete .hbp name with path on <Project Tree><Project Name> tooltip.
* contrib/hbide/projectwizard.prg
! Advanced.
* contrib/hbqt/qtgui/qth/QMdiArea.qth
+ Added: methods introduced in Qt 4.8 guarded against version control.
* extras/gtwvw/hbgtwvw.h
* extras/hbvpdf/hbvpdf.prg
* extras/gtwvw/tests/prog0.prg
* extras/gtwvw/tests/prog1.prg
* extras/gtwvw/tests/prog2.prg
! fixed remaining 8-bit ASCII chars. Now they are only
present in hbtest and codepage source files (where they
generate lots of warnings with Xcode 4.4 / clang).
(plus a few in 3rd party code)
+ utils/hbmk2/examples/plug_bis.hb
+ hbmk2 plugin for bison support. Syntax checked but not tested.
* utils/hbmk2/examples/plug_tpl.hb
+ made it display an error message when run in standalone mode
* contrib/hbqt/hbmk2_qt.hb
* formatting