summaryrefslogtreecommitdiff
path: root/basctl
AgeCommit message (Collapse)AuthorFilesLines
2013-09-19GSOC work, enable interface name usage instead of it's full namefeature/gsoc-basic-ide-completion-and-other-bitsGergo Mocsi1-0/+1
From now, interfaces/structs/enums can be used as types in BASIC IDE. This example illustrates the feature the best: dim aPicker as star.ui.dialogs.XFilePicker dim aPicker2 as sun.star.ui.dialogs.XFilePicker dim aPicker3 as com.sun.star.ui.dialogs.XFilePicker dim aPicker4 as css.ui.dialogs.XFilePicker dim aPicker5 as ui.dialogs.XFilePicker dim aPicker6 as XFilePicker Any of the definitions above are accepted (css is shorthand for com.sun.star). Change-Id: I1ac2196f21ba0950d2932ef5bc11a1d5d2346b4c
2013-08-29GSOC work, renaming+listbox right side fixGergo Mocsi2-5/+5
Fixed the small bug in positioning the listbox to the right side. Function ResizeListBox was renamed to ResizeAndPositionListBox. Change-Id: I3cea54ad5658ee1628935b4975f52fe78c1ff5c3
2013-08-23GSOC work, fix the clipped listboxGergo Mocsi1-27/+20
Listbox clipping works correcly on the right side and on the bottom. The function calculations are done from the initial position: if the actual X/Y coordinate + width/height exceeds the visible area, listbox is poitioned up/a bit left. Change-Id: I17ff28cd23423819b55d7079c6d35484b567899c
2013-08-22GSOC work, fixed clipping of the listbox in the bottomGergo Mocsi2-19/+18
Listbox positioning on the bottom is corrected. Change-Id: I75af0ff68b24ad26e9c9bd41d91a6ac9d1fa9d1c
2013-08-21GSOC work, arrow navigation+TextSelection problems fixedGergo Mocsi2-8/+34
I've added a new function called EditorWindow::GetLastHighlightPortionTextSelection, which gets the last edited word (from the highlight portion), and creates a TextSelection from it. Later, this is used to remove/replace text in the listbox when pressing the tab key. The proble was, that is cleared the whole line, but now, it just clears the newly edited word. Change-Id: I61b6721696e89002705c9980579023b42ad1faaa
2013-08-20GSOC work, fix strange TextPaM errorsGergo Mocsi1-25/+40
Wrong TextPaM's caused the autocorrection to insert the string multiple times, this is now fixed. I use the values from the HighlightPortion struct. Change-Id: I5ff5f01c06738088639186c35eb58ee9ff497d95
2013-08-20GSOC work, multiple fixesGergo Mocsi1-2/+2
Code completion: parser recognizes extended types ony when the checkbox is checked. Fixed a crash caused by a misspelled uno type. Fixed function CodeCompleteDataCache::Clear() to clear both internal variables. Change-Id: I82fdd2e1cf749237e2e2de4a9a2fc7d07fb7eb4a
2013-08-19GSOC work, options fixGergo Mocsi1-5/+8
Tools/Options are now saving correctly. I've added a check for empty string in EditorWindow::HandleCodeCompletition. Change-Id: Ib5d75fe840e3c3fd12cd7175fb7828b8a1d76db6
2013-08-19GSOC work, small fixesGergo Mocsi1-28/+22
Some code fixes in function EditorWindow::HandleAutoCorrect(): updating the module and getting the data from parse is necessary(not just when code complete is on). Removed some duplicate code when checking for the type of the actual highlight portion. Change-Id: I29a62dae23f2c28e54f9185ac59ff2747c64e0d7
2013-08-19GSOC work, autocorrect procedures+variablesGergo Mocsi1-6/+23
Fixed some small issue with the right arrow key in the ListBox. Autocorrection now correct all variable types and procedure names. Change-Id: Iff1abaf10c621aef04772837faa272bb6f987e37
2013-08-15GSOC work, small code fixesGergo Mocsi1-8/+10
Added some constants for CodeCompleteWindow::ResizeListBox(). Simplified a condition is EditorWindow::HandleAutoCorrect(). Change-Id: If8aa34273b6170130d95a309ed385a5152418b76
2013-08-15GSOC work, simplify CodeCompleteWindow::ResizeListBoxGergo Mocsi2-32/+32
Now all calculations are done in this function, plus the initial TextSelection is passed as a parameter (it it needed to determine the location of the ListBox). Some local variables were made constant. Change-Id: I36942ded72cc988c8fd5114e0d666f447b80d396
2013-08-14GSOC work, autocorrect fixGergo Mocsi1-2/+20
Autocorrect fixes the new types independently from code completition(not just pressing the "." after the variable). Change-Id: Icc31af29f1dcc0de662d7fc191c3f215188b571b
2013-08-14GSOC work, renaming + options fixGergo Mocsi1-2/+2
Options now work correctly: I've added the missing function. Rename: renamed some variables and methods to kep the consistence( Autocorrect keywords -> Autocorrect). Change-Id: I6b4914575f1a06eb3268c133b8b990364e3d24e4
2013-08-13GSOC work, behavior fixesGergo Mocsi1-11/+45
Code completition: left/right arrow keys handled. Left arrow dismisses the dialog when reaches the dot. Right arrow dismissed the dialog when reaches the next line. ListBox appearance fixed. TAB key can insert the first matching entry. Autocorrect: "Autocorrect Keywords" has been renamed to "Autcorrect" (in the UI, and the config file, after this patch a make dev-install is needed). Keyword case correction is not just capitalizing the first letter ( eg. Elseif -> ElseIf ). Autoclose procedures: cursor is being placed inside the preocedure. Change-Id: Ie7e9ae96b49bd94562db83f96e1c4ad63ab3f3d6
2013-08-12GSOC work, Tool/Options/Basic IDE Options createdGergo Mocsi8-474/+0
Created a new tab in Tools/Options/Basic IDE options instead of the ModalDialog. The original dialog under Basic IDE/View/IDE Options was removed. Tab page is disabled when experimetal flag is off, entry node in the treebox is visible. Change-Id: Iaad1ea5fadc3f05ca81f2240dceb513f25be35b9
2013-08-08GSOC work, TAB key inserts match+code fixesGergo Mocsi2-18/+60
Feature: TAB key now inserts the matching entry. When the TAB key is pressed simultaneously, it selects+inserts the next match. Fixed some duplicate code calls. Added a function called CodeCompleteListBox::GetParentEditWiew() to shorter the parent's ExtTextView variable access. Change-Id: I2ae2eaa07fff760d91d05120439c76b215fcd3c1
2013-08-08GSOC work, code fixesGergo Mocsi2-40/+40
Simplified the nested reflection. Fixed the small issue with the autocorrect keywords: it corrupted the line when doing nested reflection. Iterator is used instead of for loop when extracting identifiers for nested ferlection. Change-Id: I8e7e83b4e46838a32e03f71b4fe91dd9d94b3131
2013-08-07GSOC work, unused code removalGergo Mocsi1-3/+1
Removed the call of CodeCompleteListBox::GrabFocus. Change-Id: I6095f354eadd680d040319beb4d15d37850c3e9d
2013-08-07GSOC work, code simplification+removed unused functionsGergo Mocsi2-115/+106
Removed some unused functions from CodeCompleteListBox/CodeCompleteWindow. Renamed CodeCompleteListBox::SetVisibleEntries to SetMatchingEntries. Simplified autocorrect functions. Change-Id: I29f9653d52fff2c5020243aa5c14f1ea280018d3
2013-08-07GSOC work, code simplificationGergo Mocsi2-116/+173
Created a new class: UnoTypeCodeCompletor, which does the field/method extraction for code completition. Functions GetXIdlClassMethods() and GetXIdlClassFields() have been added to UnoTypeCodeCompletor and removed from EditorWindow. Change-Id: Ia47965b502c868f52c466c282cb98ccd806ff6f7
2013-08-07GSOC work, code fixesGergo Mocsi2-251/+272
Small fix in the listbox size: I'm using GetOptimalSize to set the correct width. EditorWindow::KeyInput: autocomplete/codecomplete functions have been placed into separate functions. Function autoclose sub/functions: duplicate code removal. Change-Id: I44678753fc9737fd7a0913af3caa4f1f565aca28
2013-08-06GSOC work, small fixes for listbox appearanceGergo Mocsi2-22/+26
Listbox top does not cover the actual line. Listbox width and height problems are fixed. Change-Id: Ia814f14c3ae326eecd497df2a233eee0b6c30adb
2013-08-06GSOC work, Extended types correctionGergo Mocsi2-33/+76
Stucts can be autocompleted when extended types disabled. Created two functions to make the code brighter. They extract the methods/fields from an XIdlClass and return them in a std::vector<OUString>. I had to modify file basic/source/comp/dim.cxx, to check on UNO types when code completition is on. Change-Id: Id93a6fe896424efb7868f6102985f59fb419b17e
2013-08-02GSOC work, KeyInput instead of PreNotifyGergo Mocsi2-70/+18
CodeCompleteListBox now uses KeyInput instead of PreNotify to handle key events. The cursor is visible, arrow keys navigate the listbox correctly. Change-Id: Ia0d5c5c48858d345dc4b4886ece1db618bdfc67c
2013-08-02GSOC work, show the cursor when typing 2Gergo Mocsi2-0/+81
There are two cases: a) TextView in focus: cursor is visible, typing works, except the arrow keys are not working for the ListBox b) ListBox in focus: no cursor, everything works Change-Id: Iaaec69c04370e4d05e226abeecd420bf4d4f52cd
2013-08-01GSOC work, listbox hides the cursor fixGergo Mocsi1-2/+2
When the listbox appears over the line, it no more hides the top of the cursor. Change-Id: Ic2d0e8295cc4c44f06765af0d431859b53ab88d2
2013-08-01GSOC work, renaming for consistencyGergo Mocsi2-303/+0
Menu enrty was renamed to IDE Options under View. SID_BASICIDE_CODECOMPLETE was renamed to SID_BASICIDE_IDEOPTIONS. CodeCompleteDlg was rename to BasicIDEOptionDlg. Ui file was renamed to basicideoptionsdialog.ui. Checkbox for extended types is now independent from code complete one. Change-Id: Id862df0ee56cdf2aa81e19a34099fe679ad5d311
2013-08-01GSOC work, renaming for consistencyGergo Mocsi9-43/+365
Menu enrty was renamed to IDE Options under View. SID_BASICIDE_CODECOMPLETE was renamed to SID_BASICIDE_IDEOPTIONS. CodeCompleteDlg was rename to BasicIDEOptionDlg. Ui file was renamed to basicideoptionsdialog.ui. Checkbox for extended types is now independent from code complete one. Change-Id: Id862df0ee56cdf2aa81e19a34099fe679ad5d311
2013-07-31GSOC work, autoclose procedures fixGergo Mocsi1-2/+13
Fixed function autoclose procedures: when there was an incomplete function/sub, and the lookahead found another sub/function, autocorrected the wrong ending. This is fixed. Change-Id: I3d894808fe8111f1ea1fac797b16576d843bff68
2013-07-31GSOC work, ListBox appearance fix (at the borders) + code fixesGergo Mocsi4-10/+62
ListBox appearance fixed at the borders: a) bottom: it it placed over the current line (not under) b) right side: listbox's right side is adjusted to the window's right side Coed fixes: CodeCompleteOptions now intializes itself from the configuration file BasicIDE.xcs Added a checkbox for enabling extended types in the options dialog. Cursor is visible when the listbox is active. Fixed the small issue when deleting a character. Change-Id: I68b80143de245cebfce65cdd8af37ea4694aa81b
2013-07-30GSOC work, config crach fixGergo Mocsi1-4/+4
Storing code completition data in config file is fully functional. Change-Id: If9a974dd0ed052e26963ad5f202493674f1a51ca
2013-07-30GSOC work, config entry to store optionsGergo Mocsi2-0/+35
Created a config file to store configuration for the feature. NOTE: it gives a runtime error, so it is temporary disabled. Change-Id: I7103bdfad43bb5760165430a57d93a90a7e5dc7e
2013-07-29GSOC work, "autocomplete procedures" fix + new featureGergo Mocsi4-15/+128
Fixed the procedure autoclose function. Now, autoclose is based on the syntax higlighter: if finds an opening token, starts searching forward to a close token. If there is another sub/function keyword, or EOF is reached, the procedure is considered incomplete. If the end token is found, the procedure is considered to be closed. Added function autocorrect symbol spelling, wich corrects the ascii case of the keywords, and corrects the spelling of the extended types. Change-Id: Ibd17f319a6d6ff5c3f91f4adb7a10dc701f0468a
2013-07-29GSOC work, listbox appearance fixGergo Mocsi1-2/+9
Fixed the listbox appearance even the source file is scrolled. When scrolling, and the listbox is visible, it gets hidden. I've set the Code Completition to defaultly true, to make testing easier. Change-Id: If571a4f1d38751b35fd43ab3c1f13daccd9dd375
2013-07-29GSOC work, nested reflection fix - againGergo Mocsi1-26/+31
Fixed the issue when an invalid method was typed, listbox showed tha methods of the base variable. Change-Id: I88576645b373e76112103055d547f713af1fc153
2013-07-29improve performance switching modules in large Libraries fdo#66148Noel Power1-9/+32
object catalog when updated, updates ( all ) entries and was parsing the source for every method in every module Change-Id: Id68e3c24d597d29a86d3507a7dc20745c96dd2a2
2013-07-26GSOC work, extend reflection+crash fixGergo Mocsi1-45/+70
Fixed creash error on accessing elements of an empty vector. Reflection is now extract fields also. Change-Id: Ic41353cbe9fc404115eb0d2b2f9d5706fc044dab
2013-07-26GSOC work, implement "Autoclose parenthesis" functionGergo Mocsi4-6/+21
Autoclosing parenthesis function is working. Implementation is similar to autoclosing double quotes, except that this one does not need the HighlighPortion struct to use. Renamed the checkbox title to "Autoclose parenthesis". Change-Id: I4311cd8020f0dc0b62a2d8707e0eccbf57e0d2c2
2013-07-26GSOC work, fix runtime crashGergo Mocsi1-1/+1
Fixes runtime crash by not checking the string length in "Autoclose Quotes" funtion. Change-Id: I15e58a0fd487ce86b832452a562406b8155b2641
2013-07-25GSOC work, implemented "Autoclose Double Quotes" optionGergo Mocsi2-2/+20
Feature autoclosing double quotes (strings) implemented. When the user presses the '"' key, it's pair is also being inserted (only when the previous character is also a '"'), and the cursor is being placed inside the two quotes. Also, if the there was a string (like: "aaa""), the second one is not inserted. Change-Id: I3e4a5e426d2d4bdbf56899fe3e36359ae161b52a
2013-07-25GSOC work, procedure autoclose implementationGergo Mocsi2-4/+25
Now, function procedure autoclose is working. Created a struct named IncompleteProcData to store the line number, type and name of the inclomplete procedure. Procedures are store in a vector (IncompleteProcedures), and are as a member in SbModule. I've created a function called SbModule::GetIncompleteProcedures() to extract the data. Data extraction uses SbModule::SetSource32, beacuse that one tokenizes sthe source file, and recognizes procedures. Closing procedures is triggered ky pressing the Enter key when typing. It checks the actual sub, and if it's incomplete, adds the correct ending( End Sub/End Function). There is only one problem: function SbModule::SetSource32 is not too often calle, maybe extraction should be done by a timer. Change-Id: Id88daaef329e8b5c194b765c5261d356bfb3a0c9
2013-07-25GSOC work, disable QuickSelectionEngine+ListBox navigation modificationGergo Mocsi3-12/+13
Added a function to disable QuickSelectionEngine in ListBox, beacuse it's not needed. ListBox navigation changed: it is not hiding/showing entries, instead of it, jumps to the longest match without filtering. Arrow behavior remains the same. Change-Id: I8982c280f20929c74f9630cbaa95010820d2e234
2013-07-24remove strange added Invalidate bitsNoel Power1-5/+0
Change-Id: I61f4a6af62d67f2fd5f421e2173cca179d399815
2013-07-24GSOC work, cache implementation fix, code fixesGergo Mocsi2-30/+11
The CodeCompleteDataCache got a new implementation: global variables are stored separately. The "static const" OUString-s were removed from the class. Data extraction is only done when pressing the dot key. Change-Id: I3ff94c0c6eabe328761336d4c74744eb7efc6056
2013-07-23GSOC work, ModalDialog instead of menu entryGergo Mocsi7-10/+347
Created a ModalDialog named CodeCompleteOptionsDlg to edit options for code completition/suggestion. Unimplemented features in it are disabled. The dialog window uses Glade .ui file. Change-Id: I1b59f386a9575aa25b38c5a1d7d1f020498a69ab
2013-07-23GSOC work, code complete option, menu entry fixesGergo Mocsi3-15/+38
Menu entry is added under View->Enable Code Completition when in Experimental mode. Fixed the call of funtion SbModule::GetCodeCompleteDataFromParse() to be called only when code completition is enabled. Replaced the occurences of SvtMiscOptions to CodeCompleteOptions. Change-Id: If0520123ab5f612d7d24fb98f8e9bf6881af76cb
2013-07-22GSOC work menu entry + code fixGergo Mocsi4-4/+15
Fixed the definition of GLOB_KEY, NOT_FOUND from const to static const. Added a new menu entry for code completition under View->Enable Code Completition. Change-Id: If8ac25ee43a7ba780ccdee2e5e909777115a1f27
2013-07-21GSOC work window hide when clicking outGergo Mocsi2-7/+32
CodeCompleteWindow is hidden when clicking out: thi is implemented in EditorWindow::MouseButtonDown: if CodeCompleteWindow is visible and the actual TextSelection of the window and the parent's TextView is different, hide the window (I assume the user changed selection, eg. clicked on other line, etc.). Change-Id: Icb6bcffa837b2f7e1ccef288b9d762e27649410b
2013-07-20GSOC work, some code fixesGergo Mocsi2-128/+76
Fixed the link error: declared CodeCompleteDataCache as BASIC_DLLPUBLIC and it worked fine. Fixed sergmentation fault error in CodeCompleteWindow. The new cache implementation is fully functional. CodeCompleteWindow is now being used as boost::scoped_ptr. Change-Id: I76a0fc7407d589e7f94280fc4d50cea51b9639db