aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPNarrowDownCompletion.m
Commit message (Collapse)AuthorAgeFilesLines
* Tried to fine-tune the auto-completion behaviour esp. for automatically ↵Bibiko2010-04-071-1/+54
| | | | | | inserted suggestions and increased the minimum auto-complete delay to 0.5s since below that a fight between computer speed and user typing speed could occur. This addresses i625.
* • overlapping of completion windows after refreshing its content if db ↵Bibiko2010-04-061-3/+7
| | | | | | structure fetching was finished - for some reasons it could happen that the timer? fires twice, to avoid this changed the re-invocation strategy
* • completion listBibiko2010-04-061-43/+54
| | | | | - unified scroll behaviour - fixed some issues if animated "fetching data…" row is displayed incl. a fix to avoid overlapping completion windows
* • fixed issue for refreshing the completion list after finishing the ↵Bibiko2010-03-311-2/+2
| | | | | | structure querying - set variable directly and call [self close] explicitly
* • fixed issue for completion window if animated sync icon is shownBibiko2010-03-311-6/+25
| | | | | - init all column' data cells according to their settings to avoid jittering and font size change - this fix also removed one issue for 'overlapping' completion windows
* • if document window will close sent a ↵Bibiko2010-03-311-2/+2
| | | | | | 'cancelPreviousPerformRequestsWithTarget' to the custom query editor to stop auto-completion and auto-help timer to avoid crashes after closing • improved some minor stuff for completion's re-invocation
* • querying for db structure is queued for the same connection to avoid ↵Bibiko2010-03-311-13/+105
| | | | | | | | | | | 'overlapping' access to global variables • after querying db structure write back data on main thread • completion list displays animated sync images if connection is just querying db structure data • fixed some minor issue for completion list • make sure that if last window of a connection is closed all relevant data will be removed from global variables Note: please test!
* - db structure for tables and views will now be queried by using SHOW… ↵Bibiko2010-03-281-5/+9
| | | | | | | | | | | statements - completion now works for server versions < 5 as well - proc/func info will be queried by using information_schema for mysql >= 5 - changed completion logic to handle new format - completion will get the info from SPNavigator since this controller caches all information about db structure - optimization and fine-tuning will follow very soon
* General tidy up, with a focus on consolidating more constants in ↵stuconnolly2010-03-241-2/+3
| | | | SPConstants.h/m.
* • further work on Navigator (not yet active but workable -> unHide menu item)Bibiko2010-03-191-6/+12
|
* - fixed bug for nested snippets if a nested snippet is located at the very ↵Bibiko2010-03-171-0/+4
| | | | | | end of the text buffer and has no default value - added a range sanity check for completion before insertion of the chosen item
* • Query FavoritesBibiko2010-03-161-0/+6
| | | | | | | | | - added support for mirrored snippets $x x:= to be mirrored snippet index - example: SELECT $1.${2:} FROM ${1:¦$SP_ASLIST_ALL_TABLES¦} WHERE $1.${3:} = ${4:value} AND $1.$2 = • CMTextView - fixed completion issue for fuzzy search - added {} chars as auto-pair for connivence
* Following a manual code review, fix some local variables overriding global ↵rowanbeentje2010-03-151-0/+1
| | | | variables, a few leaks, and additional nil setting/checking to prevent overreleases or releases of random areas of memory.
* • append () after completion of a stored procedureBibiko2010-03-111-2/+2
|
* • auto-completionBibiko2010-03-101-0/+7
| | | | | - suppress completion window if only one item is found and the typed word is equal to it (case-insensitively) - fixed memory leak
* • added $SP_ASLIST_ALL_FIELDS_FROM_SELECTED_TABLE as pre-defined snippet listBibiko2010-03-091-2/+7
| | | | | • added Show Completion List submenu to the Custom Query Editor gear menu with the items all dbs ^1, all tables ^2, all fields ^3 • if dbStructure is available show these pre-defined completion lists with all info like the completion it does, otherwise fall back to plain style
* • fixed bug in snippet list - now it inserts the chosen item correctly ↵Bibiko2010-03-091-0/+1
| | | | | | | | | | | | | after narrow-down the list • added chance to invoke the snippet list in fuzzy search mode by the template ¦¦a¦b¦¦ • added new snippet placeholders: ¦$SP_ASLIST_ALL_TABLES¦ displays a list of all tables incl. views from the current db ¦$SP_ASLIST_ALL_DATABASES¦ displays a list of all dbs from the current connection This makes it possible to write eg a query fav: USE ¦¦$SP_ASLIST_ALL_DATABASES¦¦; to search via fuzzy mode for a db and to use it
* • improved tooltip behaviour of SPNarrowDownCompletion's tableViewBibiko2010-03-091-0/+58
| | | | • added "Filter Tables…" ^⌥⌘F" to main menu > Table which sets the focus to TablesList's search field if visible
* • fixed some minor GUI issues for SPNarrowDownCompletion windowBibiko2010-03-091-6/+22
| | | | - added oneColumn mode for dict and list view to decrease the window's width
* • added possibility to define a snippet via ¦a¦b¦ – such a snippet ↵Bibiko2010-03-081-1/+1
| | | | | | | | will be shown as completion list with the items “a” and “b” • set auto-completion default Pref setting to true • fixed some auto-completion issues like do not insert common prefix automatically and some others • applied ¦a¦b¦ template to CompletionTokens.plist and some tiny corrections and improvements
* • outsourced keyword completion and function completion lists to ↵Bibiko2010-03-081-15/+23
| | | | | | | | | | | CompletionTokens.plist • SPQueryController manages keyword and function completion lists now; this reduces the memory usage a bit and the list is easier to edit • added pre-defined function argument snippets to CompletionTokens.plist (auto-generated from mysql's HELP) • added Preference option for Editor whether a function completion should insert () and if found the function argument snippets automatically or not - last ) will be linked as autopaired then • changed behaviour for wrapping a selection into `"'() etc. - now it re-selects the original selection after wrapping and in addition last wrap character is now marked as autopair-linked • improved logic for popping up the auto-completion list
* • function completionBibiko2010-03-071-2/+7
| | | | | - do not insert () after a function if inserted string ends with ) - no snippet insertion for () - only locate the caret inside ()
* • added to CustomQuery's CMTextView the option to set auto-completion ↵Bibiko2010-03-071-4/+15
| | | | | | on/off, settable in Prefs and gear menu - if inserted completion is marked as function it inserts snippet (${}1:) so far; function parameters as snippets follows soon
* • CMTextView completionBibiko2010-02-191-1/+7
| | | | - if user types foo. while completion list is open and no suggestion is found re-invoke completion automatically due to the fact that it's very likely that the user wants to insert either a table or field
* • improved completion behaviour of suggestions containing spaces; a second ↵Bibiko2010-02-051-5/+11
| | | | space will cancel the list to allow a more natural typing
* • further improvements to allow to insert programmable query favorites (as ↵Bibiko2010-01-251-4/+8
| | | | | | | | snippets) - not yet finished but workable eg fav: "SELECT ${1:`mysql`.`user`.} FROM ${2:`mysql`.`user`} ${3:WHERE}" bound to tab trigger "sel"; then write "sel" press ⇥ to expand, change `mysql`.`user`. or press ESC to insert a field, press ⇥ to select `mysql`.`user`to change if desired, etc. or press ⇧⇥ to select prev. snippet • completion can now be invoked via selection - some other tiny improvements
* • completionBibiko2010-01-211-35/+71
| | | | | | | - CTRL+ESC invokes the fuzzy search completion; eg: i_s.pcss. will show all fields from `information_schema`.`PROCESSLIST`. if no other matches are found; the search is a regexp ".*?i.*?_.*?s.*?\. …" etc. by using RegexKitLite which is much more faster than NSPredicate and can handle long regexps - improved type display: if a type definition contains a , split it to avoid splitting of the tokenFields - while insertion of an item and holding down the CTRL key the list keeps open to allow to insert more suggestions separated by ", " from the current list (very useful if one wants to insert only selected fields from a table)
* • completion enhancementsBibiko2010-01-211-25/+97
| | | | | | | - TAB and mouse double-click inserts suggestion - field type info for 'set' and 'enum' is fixed; in addition show an arrow to show the definition - preparations for fuzzy search completion (not yet active) - reduced the font size by 1pt to avoid truncating
* • completionBibiko2010-01-201-97/+55
| | | | | | | | - auto-completes the common prefix of all suggestions - makes typing much more faster - “ ” as allowed character to be typed for narrow-down the list is set automatically if at least one suggestion contains a “ ” - fixed two tiny memory leaks - fixed detecting db/table/field names containing ` as char - removed ⇥ binding to complete the common prefix since it's done automatically
* • improved completion for Query Editor bound to ESCBibiko2010-01-191-122/+162
| | | | | | | | | | | | | | | - up to now for MySQL >4 available - implemented by narrow-down, i.e. write/delete to narrow-down/expand the suggestion list - ↩ inserts the suggestion, if suggestion is db/table/field/proc/func name inserts backtick quoted - for a db/table/field/proc/func name press ⇧↩ to insert à la `db`.`table`.`field` relatively to the current selected db - context-sensitive to leading db. or table. or db.table. or .table if uniquely identifiable - mysql and information_schema if available and not selected appear at the end - `|` | := caret shows the current table's fields if any or the current selected db if selected at the top; suggestions are hierarchically arranged by db, table; easiest way to insert a table/field name - e.g. type `max_c` and press ⇧↩ to insert `mysql`.`user`.`max_connections` - for table/field name suggestions press at the right column to get the path info • F5 invokes completion based on spell checker and selected language - since it is not possible to auto-detect if the user wants to complete MySQL statements or prose text Note: GUI needs improvements; completion should be tested exhaustively
* - removed F5 completion debug outputBibiko2010-01-151-15/+16
| | | | - fixed issue while ‘normal’ completion after “table.” completion
* • refactored parsing code for F5 completionBibiko2010-01-151-28/+21
| | | | | - improved ⇧↩ insertion - improved backtick behaviour
* • F5 compeltionBibiko2010-01-131-3/+35
| | | | | - fixed issues if no db is selected - trial: ⇧↩ inserts the entire path db.table or db.table.field; if invoked inside of backticks backticked
* • further improvements for F5 completionBibiko2010-01-131-10/+25
| | | | | | | - first steps for context-sensitive completion: parse left side of current word to look for db.table.field constructions - eg type: mysql.user. and press F5 Note: work in progress :)
* • further developments for the F5 completionBibiko2010-01-111-2/+4
| | | | Note: not yet finished!
* • further preparations to F5 completionBibiko2010-01-111-52/+80
| | | | Note: not yet active - only querying the data in background will be performed for testing
* • made lexer 64bit compatibleBibiko2010-01-101-3/+19
| | | | | | - 'int' has to be replaced by 'size_t' • F5 completion - if inside of backticks after completion move caret one char rightwards to go out of the backticks
* • F5 completionBibiko2010-01-091-1/+1
| | | | | - fixed forgotten range checking to suppress Console warning - `|` [ | := caret ] shows all field names - up to now only those from the current table - table/db/proc/func names
* - Upgrade Sequel Pro to be compiled as a 3-way PPC/i386/x86_64 binary for ↵rowanbeentje2010-01-091-14/+15
| | | | | | | release builds, including a large number of 64bit compatibility upgrades and tweaks - Upgrade RegexKitLite to 3.3
* - Work through static analysis of the source, fixing a number of small ↵rowanbeentje2009-12-141-1/+1
| | | | memory leaks and fixing a couple of over-releases
* Tidy up.stuconnolly2009-11-071-9/+15
|
* Replace the use of hard coded preference keys with constants to prevent ↵stuconnolly2009-10-171-1/+2
| | | | issues such as the one fixed in revision 1419. All future preference usage should be done so using these constants.
* - Replaces uses of the deprecated selectRow:byExtendingSelection: with ↵rowanbeentje2009-09-021-1/+1
| | | | selectRowIndexes:byExtendingSelection:
* Merge framework integration branch back to trunk. Summary of changes:stuconnolly2009-07-211-2/+2
| | | | | | | | | | | | | | | - Includes all custom code from subclasses CMMCPConnection and CMMCPResult, meaning they have subsequently been removed from the project. - All previous Sequel Pro specific code in the above subclasses has been removed in favour of the delegate (currently set to TableDocumet) informing the framework of such information. - All references to CMMCPConnection and CMMCPResult have subsequently been changed to MCPConnection and MCPResult. - Framework includes MySQL 5.1.36 client libraries and source headers. - Framework is now built as a 4-way (32/64 bit, i386/PPC arch) binary. - All import references to <MCPKit_bundled/MCPKit_bundled.h> have been changed to <MCPKit/MCPKit.h>. - New script 'build-mysql-client.sh' can be used to build the MySQL client libraries from the MySQL source. See the script's header for a list of available options or run it with no arguments to display it's usage. Note that there are still a few changes to be made to the framework with regard to removing Sequel Pro specific calls to the delegate. These however can be made later on as they have no effect on functionality and are merely design changes. Also, note that any future development done on the framework should be made to be as 'generic' as possible, with no Sequel Pro specific references. This should allow the framework to be integrated into another project without the need for SP specific code.
* • fixed dealloc of 'suggestions' in SPNarrowDownCompletionBibiko2009-07-151-7/+3
| | | | | • deleted (void)paste hook from CMTextView (not needed anymore) • decreased iteration cycles for 'normal' completion (ESC) by getting only the unique words from the current textView
* - Make the DBView window the document window. This allows the document to ↵rowanbeentje2009-07-151-3/+5
| | | | | | | | | | be closed when the window is closed, freeing the document's memory - Update a number of dealloc methods to include more retained memory, and to avoid releasing non-retained memory - Remove notification observers and delegates where appropriate to avoid issues after document closing - Fix a couple of memory leaks - Support window cascading for all windows past the first, using the first window as the autosave window
* • added support to drag&drop textClipping files to Custom Query Editor and ↵Bibiko2009-06-191-2/+2
| | | | | | | to editSheet • fixed tiny issue for narrow-down completion
* • added to SPArrayAdditions.h: NSArrayObjectAtIndex() inline functionBibiko2009-06-181-2/+3
| | | | | | | | | - id o = NSArrayObjectAtIndex(anArray, index) :== id o = [anArray objectAtIndex:index] - this speed up it ~3µs per call - replaced that inline function for such calls within loops to speed up them • used IMP function pointers for keepAlive calls within queryString: • set -O3 (Fastest) compiler option • allow in preference pane "Tables" to set the Limit up to 50000
* • improved narrow-down completionBibiko2009-05-251-1/+11
| | | | - allow to enter dead-keys or compounded accented chars via e.g. ⌘u + u → ü
* • improved narrow-down completionBibiko2009-05-251-8/+16
| | | | | - if suggestion list contains a space add a space to the allowed textual input characters if not a space closes the pull-down list - some minor fine-tuning