aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPNarrowDownCompletion.m
Commit message (Collapse)AuthorAgeFilesLines
* • 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
* • improved narrow-down completionBibiko2009-05-241-30/+56
| | | | | - added support for "in-quote completion" based on suggestions of the spell checker dict and the current used words in the textView - still bound to F5
* • activate Preference setting for caret colorBibiko2009-05-241-1/+2
| | | | | | | | • added prototype for new completion (ESC -> Cocoa, F5 -> new completion) - not yet finished - TODO: -- support for NSSpellChecker items -- images for different types of suggestions like proc/func/tabkle/view/sql statement, db name, etc.
* • added class to support narrow-down completion in the Query EditorBibiko2009-05-241-0/+460
- an image can be added - display and insert string can differ - fully customizable This class is based on TextMate's TMDIncrementalPopUp implementation (Dialog plugin) written by Joachim Mårtensson, Allan Odgaard, and H.-J. Bibiko. see license: http://svn.textmate.org/trunk/LICENSE