| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
structure fetching was finished
- for some reasons it could happen that the timer? fires twice, to avoid this changed the re-invocation strategy
|
|
|
|
|
| |
- unified scroll behaviour
- fixed some issues if animated "fetching data…" row is displayed incl. a fix to avoid overlapping completion windows
|
|
|
|
|
|
| |
structure querying
- set variable directly and call [self close] explicitly
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
'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
|
|
|
|
|
|
|
|
|
|
|
| |
'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!
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
SPConstants.h/m.
|
| |
|
|
|
|
|
|
| |
end of the text buffer and has no default value
- added a range sanity check for completion before insertion of the chosen item
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
variables, a few leaks, and additional nil setting/checking to prevent overreleases or releases of random areas of memory.
|
| |
|
|
|
|
|
| |
- suppress completion window if only one item is found and the typed word is equal to it (case-insensitively)
- fixed memory leak
|
|
|
|
|
| |
• 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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
• added "Filter Tables…" ^⌥⌘F" to main menu > Table which sets the focus to TablesList's search field if visible
|
|
|
|
| |
- added oneColumn mode for dict and list view to decrease the window's width
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
- do not insert () after a function if inserted string ends with )
- no snippet insertion for () - only locate the caret inside ()
|
|
|
|
|
|
| |
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
|
|
|
|
| |
- 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
|
|
|
|
| |
space will cancel the list to allow a more natural typing
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
- 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)
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
- fixed issue while ‘normal’ completion after “table.” completion
|
|
|
|
|
| |
- improved ⇧↩ insertion
- improved backtick behaviour
|
|
|
|
|
| |
- fixed issues if no db is selected
- trial: ⇧↩ inserts the entire path db.table or db.table.field; if invoked inside of backticks backticked
|
|
|
|
|
|
|
| |
- 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 :)
|
|
|
|
| |
Note: not yet finished!
|
|
|
|
| |
Note: not yet active - only querying the data in background will be performed for testing
|
|
|
|
|
|
| |
- '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
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
| |
release builds, including a large number of 64bit compatibility upgrades and tweaks
- Upgrade RegexKitLite to 3.3
|
|
|
|
| |
memory leaks and fixing a couple of over-releases
|
| |
|
|
|
|
| |
issues such as the one fixed in revision 1419. All future preference usage should be done so using these constants.
|
|
|
|
| |
selectRowIndexes:byExtendingSelection:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
| |
• 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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
to editSheet
• fixed tiny issue for narrow-down completion
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
- allow to enter dead-keys or compounded accented chars via e.g. ⌘u + u → ü
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
- 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
|