aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPNarrowDownCompletion.m
Commit message (Collapse)AuthorAgeFilesLines
* • auto-completion in Query Editor now detects whether the caret is inside ↵Bibiko2010-08-161-0/+6
| | | | quotes or not in order to come up with the correct suggestions
* - Tweak custom query autocompletion to no longer show a key-capturing ↵rowanbeentje2010-07-171-2/+6
| | | | invisible empty autocomplete when no autocomplete matches are found
* Rename CMTextView to SPTextView.stuconnolly2010-05-271-1/+1
|
* Merge in minor fixes from 0.9.8 RC merge review:rowanbeentje2010-04-241-2/+2
| | | | | | - Make a tiny fix to narrow down completion to avoid memory overrelease issues - Unhide the "Show create view syntax" menu and contextual menu items when selecting a view
* - SPNarrowDownCompletion: Pass NSApp certain events *after* processing ↵rowanbeentje2010-04-231-2/+3
| | | | locally, to fix further crashes like http://spbug.com/l/139 .
* - Allow CMTextView to track SPNarrowDownCompletion state, ensuring old ↵rowanbeentje2010-04-221-8/+21
| | | | | | | windows are closed. This also allows SPNarrowDownCompletion to be closed when CMTextView is deallocated; this should fix http://spbug.com/l/139 . - Fix some minor memory leaks
* Review usage of notifications, afterDelay: and waitUntilDone:NO calls:rowanbeentje2010-04-121-0/+1
| | | | | | | - Add more calls to deregister watchers to fix crashes to closing threads or objects - Fix a couple of memory leaks - Alter a few calls to be performed on main thread (afterDelay: operates on the thread is is called on) - this fixed database reloading after import and field/index deletion error sheets
* 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: