diff --git a/app/cudatext.app/Contents/Resources/readme/history.txt b/app/cudatext.app/Contents/Resources/readme/history.txt index d52b5e8ed97..69e96521afe 100644 --- a/app/cudatext.app/Contents/Resources/readme/history.txt +++ b/app/cudatext.app/Contents/Resources/readme/history.txt @@ -5,18 +5,23 @@ 1.11.0 -+ new main icon, by FTurtle -+ Project Manager: file type icons -+ Project Manager: expand short "." to full name -+ find/replace/goto/console: focused input has its border highlighted -+ find/replace: Enter press on focused replace-field: makes "Replace next" and keeps focus -+ find/replace: set hotkey for "Find first" to Alt+Enter -* find/replace: changed hotkey for "Replace next" to Ctrl+R (Replace without find next: Ctrl+Alt+R) -* find/replace: changed hotkeys Alt+5/Alt+6/Alt+7 to Alt+O/Alt+E/Alt+K + ++ new main icon (by FTurtle) ++ Project Manager: file type icons (from VSCode program) ++ Project Manager: expand "." to full dir name ++ focused input (in find/replace/goto/console) has its border highlighted + option "ui_active_border" + options "find_hotkey_*" for hotkeys in find/replace dialog ++ find/replace: hotkey Enter on focused replace-box: runs "Replace next" and keeps focus ++ find/replace: set hotkey for "Find first" to Alt+Enter +* find/replace: changed hotkey for "Replace next" to Alt+Z, "Replace without find next" to Ctrl+Alt+Z +* find/replace: changed hotkeys Alt+5/Alt+6/Alt+7 to Alt+O/Alt+E/Alt+K +* changed icons of toolbar +* removed option "log_dialogs" +- Windows: one more fix to show prev instance with ui_one_instance (by @vhanla) 1.10.0 + + preinstalled plugin Tabs List + Project Manager: read only toplevel dirs from disk, and read other dirs only on unfolding them in treeview (patch by @pohmelie) + Project Manager: added toolbar @@ -26,6 +31,7 @@ - fix: loosing editor focus on Linux 1.9.3 + + preinstalled Project Manager plugin + can open folder names from command line, e.g. "cudatext ." like Atom/Sublime can do + menuitem "File - Open folder", it calls Project Manager @@ -33,11 +39,13 @@ + api 1.9.1 + + finder: replace-all made much faster (note: when confirmation is on, you will see unchanged text, it will replace later) - finder: count-all must find w/o overlaps (non-regex mode) + api 1.9.0 + + distraction-free mode, see http://wiki.freepascal.org/CudaText#Full-screen + added option "ui_fullscreen" with new values * removed option "ui_fullscreen_hide" diff --git a/app/cudatext.app/Contents/Resources/readme/wiki/cudatext.wiki b/app/cudatext.app/Contents/Resources/readme/wiki/cudatext.wiki index 60e65908bdc..d257b769085 100644 --- a/app/cudatext.app/Contents/Resources/readme/wiki/cudatext.wiki +++ b/app/cudatext.app/Contents/Resources/readme/wiki/cudatext.wiki @@ -459,18 +459,25 @@ These panels have hotkeys: Dialog has hotkeys: -* Enter: find next -* Shift+Enter: find previous -* Alt+Enter: replace next, and find next -* Ctrl+Alt+Enter: replace next, but don't find next - -Option-buttons have hotkeys too: hover mouse over them to see hints: +* Alt+Enter: Find first +* Enter: Find next/ Replace next (depends of focused input) +* Shift+Enter: Find previous +* Alt+Z: Replace, and find next +* Ctrl+Alt+Z: Replace, and don't find next +* Alt+A: Replace all +* Ctrl+Enter: Add newline in multi-line input +* Alt+O: Count all +* Alt+E: Select all +* Alt+K: Mark all + +Option-buttons have hotkeys too, hover mouse over them to see hints: * ".*" - Regular expressions - Alt+R -* "aA" - Case sensitive - Alt+C +* "aA" - Case sensitive search - Alt+C * "w" - Search for whole words only - Alt+W * "O" - Wrap search, ie search from beginning after reaching the end, and vice versa - Alt+N * "[..]" - Search in selection only - Alt+X +* "+" - Toggle multi-line mode: input boxes have double height and show several lines - Alt+M * "?!" - Show confirmation on each replace - Alt+Y ==Comments== @@ -666,7 +673,7 @@ Don't configure custom lexer styles in Lexer Properties dialog, if option "ui_le ==How to use on Windows XP== -Q: I have Windows XP, what version of CudaText and Python should I have to have plugins working? +Q: I have Windows XP, what version of CudaText (SynWrite) and Python should I have to have plugins working? A: You need any version of CudaText (after 1.7), but older Python 3.4 DLLs. You must replace these Python files: @@ -674,7 +681,11 @@ A: You need any version of CudaText (after 1.7), but older Python 3.4 DLLs. You * *.zip * folder DLLs -with Python files from this WinXP build: https://sourceforge.net/projects/cudatextbuildlinuxi386/files/release/ +With Python files from this WinXP build: https://sourceforge.net/projects/cudatextbuildlinuxi386/files/release/ + +Then open config "user.json" and write option: + + "pylib": "python34.dll", ==How to copy to clipboard word under caret== diff --git a/app/cudatext.app/Contents/Resources/readme/wiki/cudatext_api.wiki b/app/cudatext.app/Contents/Resources/readme/wiki/cudatext_api.wiki index 5f906f534a3..fe74e88a89c 100644 --- a/app/cudatext.app/Contents/Resources/readme/wiki/cudatext_api.wiki +++ b/app/cudatext.app/Contents/Resources/readme/wiki/cudatext_api.wiki @@ -926,7 +926,7 @@ Show commands dialog, which is like customizable version of F1 dialog in CudaTex Param options is sum of int flags: * COMMANDS_USUAL - Show usual commands, which have int codes. Function gets "c:"+str(int_command) for them. -* COMMANDS_PLUGINS - Show plugins commands. Function gets "p:module,method" or "p:module,method,param" for them. +* COMMANDS_PLUGINS - Show plugins commands. Function gets "p:"+callback_string for them. * COMMANDS_LEXERS - Show lexers pseudo-commands. Function gets "l:"+lexer_name for them. * COMMANDS_CONFIG - Allow to call Configure Hotkeys dialog by F9 key. @@ -936,16 +936,19 @@ Gets string if command selected, or None if cancelled. file_open(filename, group=-1, args="") -Opens editor tab with given filename. If filename already opened, activates its tab. Pass empty str to open untitled tab. +Opens editor tab with given filename. If filename already opened, activates its tab. Pass empty str to open untitled tab. Gets bool: filename is empty or file successfully opened. -Param group is index of tab-group (0-based), default means "current group". If you pass index of currently hidden group, group won't show, you need to call editor command to show it, see [[#cmd]]. - -Param args is optional string. If it has "/silent" then zipped add-on will install w/o prompt and report. - -Gets bool: filename is empty or successfully opened. +* Param "group: index of tab-group (0-based), default means "current group". If you pass index of currently hidden group, group won't show, you need to call editor command to show it, see [[#cmd]]. +* Param "args": optional string. If it has "/silent" then zipped add-on will install w/o prompt and report. Note: "ed" is always the current editor, after file_open() current editor changes, and "ed" is the new cur editor. +Example opens untitled tab, and writes multi-line text to it: + + file_open('') + ed.set_text_all(text) + + ===file_save=== file_save(filename="") @@ -953,7 +956,7 @@ Note: "ed" is always the current editor, after file_open() current editor change Saves current tab to disk. Shows save-as dialog for untitled tab. -If param filename not empty, uses it (untitled tab becomes titled). +If param "filename" not empty, it overrides current file name, and untitled tab becomes titled. Gets bool: file was saved. ===ed_handles=== @@ -962,10 +965,13 @@ Gets bool: file was saved. Gets range object: it contains int handles of all editor tabs. Pass each handle to Editor() to make editor object from handle. -Example command in console, prints filenames of all tabs: +Example code, which shows filenames of all tabs: - -for h in ed_handles(): print(Editor(h).get_filename()) + + #show all file names in console + for h in ed_handles(): + e = Editor(h) + print(e.get_filename()) ===ed_group=== @@ -1162,7 +1168,7 @@ class Command: ===menu_proc=== - menu_proc(id_menu, id_action, command="", caption="", index=-1, hotkey="") + menu_proc(id_menu, id_action, command="", caption="", index=-1, hotkey="", tag="") Perform action on menu items. @@ -1186,16 +1192,16 @@ Value of "command" parameter for MENU_ADD can be: * callback in one of these forms: [[#Callback_param]]. * (deprecated callback form) callback in the form "module,method" or "module,method,param" (param can be of any primitive type). -* to create usual sub-menus, special values: -** "recents", "_recents" - recent-files submenu -** "enc", "_enc" - encodings submenu (has subitems "reload as", "convert to") -** "langs", "_langs" - translations submenu -** "lexers", "_lexers" - lexers submenu -** "plugins", "_plugins" - plugins submenu -** "themes-ui", "_themes-ui" - ui-themes submenu -** "themes-syntax", "_themes-syntax" - syntax-themes submenu +* to create standatd special sub-menus, special values: +** "recents", "_recents": Recent-files submenu +** "enc", "_enc": Encodings submenu (has subitems "reload as", "convert to") +** "langs", "_langs": Translations submenu +** "lexers", "_lexers": Lexers submenu +** "plugins", "_plugins": Plugins submenu +** "themes-ui", "_themes-ui": UI-themes submenu +** "themes-syntax", "_themes-syntax": Syntax-themes submenu -* any string (e.g. empty), if item will be used as sub-menu (item is a sub-menu, if any sub-items are added to it) +* empty string, if item will be used as submenu (item is a submenu, if any subitems are added to it) ====Actions==== @@ -1203,37 +1209,42 @@ Possible values of id_action: * MENU_CLEAR: Removes all sub-items from menu item. Params used: id_menu. -* MENU_ENUM: Enumerates sub-items in menu item. Params used: id_menu. If id_menu valid, gets list of dict, else gets None. Dict items are: {"id": int_id_menu; "cap": str_caption; "cmd": int_command; "hint": str_command; "hotkey": str_hotkey}. +* MENU_ENUM: Enumerates sub-items in menu item. Params used: id_menu. If id_menu valid, gets list of dict, else gets None. Dict items are: {"id": int_id_menu; "cap": str_caption; "cmd": int_command; "hint": str_command; "hotkey": str_hotkey; "command": int_or_str}. ** for separator items: "cap" is "-" ** for usual command items: "cmd" value is >0 ** for plugin command items: "cmd" value is <=0; "hint" is callback string ** for sub-menu items: "cmd" value is <=0; "hint" value is some string +** "command": has int value of "cmd" (if >0), or str value of "hint" (otherwise) * MENU_ADD: Adds sub-item to menu item. Gets string, menu_id for newly added sub-item. Params used: -** id_menu - item in which you add sub-item. -** caption - caption of menu item, or "-" for menu separator. -** index - 0-based index at which to insert sub-item. Default: append item to the end. -** command - possible values are described above. -** hotkey - string of hotkey (e.g. "Ctrl+Shift+A"). Hotkey combos not allowed. Overrides hotkey, which is auto assigned from command code. +** id_menu: Item in which you add sub-item. +** caption: Caption of item, or "-" for menu separator. +** index: Index (0-based) at which to insert sub-item. Default: append item to end. +** command: Values are described above. +** hotkey: String of hotkey (e.g. "Ctrl+Shift+A"). Hotkey combos are not allowed. It overrides hotkey, which is auto assigned from command code. +** tag: Any string stored in menu item. * MENU_CREATE: Creates new popup-menu, independant from CudaText menus. It can be filled like other menus, then shown via MENU_SHOW. -* MENU_SHOW: Shows given popup-menu (note: only popup-menu id can be used here, not id of top menus). Param "command" must be "x,y" with screen-related coordinates, if empty - menu shows at mouse cursor. +* MENU_SHOW: Shows given popup-menu. Only menu created with MENU_CREATE should be specified here. Param "command" must be tuple (x,y) or string "x,y" with screen-related coordinates, if empty - menu shows at mouse cursor. ====Example==== -Example adds item "Misc" to the main menu, and sub-items: "About-1", "About-2", separator, "Rename file" (from CudaExt plugin): +Example adds item "Misc" to the main menu, and sub-items: "About", separator, "Rename file" (from CudaExt plugin): + menuid = menu_proc('top', MENU_ADD, caption='Misc') - n = menu_proc(menuid, MENU_ADD, command=2700, caption='About-1') - n = menu_proc(menuid, MENU_ADD, command=2700, caption='About-2') + n = menu_proc(menuid, MENU_ADD, command=2700, caption='About') n = menu_proc(menuid, MENU_ADD, caption='-') - n = menu_proc(menuid, MENU_ADD, command='cuda_ext,rename_file', caption='Rename file') + n = menu_proc(menuid, MENU_ADD, command='cuda_ext.rename_file', caption='Rename file') + Example creates popup-menu with one item and shows it at (x=100, y=100): + h = menu_proc(0, MENU_CREATE) menu_proc(h, MENU_ADD, command=2700, caption='About...') - menu_proc(h, MENU_SHOW, command='100,100') + menu_proc(h, MENU_SHOW, command=(100,100) ) + ===toolbar_proc=== @@ -1859,6 +1870,12 @@ Text is chr(1) separated items: =History= +1.0.185 +* add: menu_proc: for MENU_ADD added param "tag" +* add: menu_proc: MENU_SHOW can use 2-tuple (x,y) +* add: menu_proc: MENU_ENUM gives additional dict key "command" +* deprecated: menu_proc command values: recents, enc, langs, lexers, plugins, themes-ui, themes-syntax + 1.0.184 * deprecated: app_proc: PROC_SIDEPANEL_ADD, PROC_BOTTOMPANEL_ADD * deprecated: on_panel event diff --git a/app/cudatext.app/Contents/Resources/settings_default/default.json b/app/cudatext.app/Contents/Resources/settings_default/default.json index 820b254543d..62da1985d97 100644 --- a/app/cudatext.app/Contents/Resources/settings_default/default.json +++ b/app/cudatext.app/Contents/Resources/settings_default/default.json @@ -700,11 +700,6 @@ //Folders from: sideicons "ui_sidebar_theme": "octicons_20x20", - //[Python] - //Enable to save log files, for plugin dialogs - //Files are %temp%\dlg_nnnnnnnnnnnnn.txt - "log_dialogs": false, - //[FindHotkeys] //Hotkeys in Find/Replace dialog "find_hotkey_find_dlg": "Ctrl+F",