SciTE 1.73

Private build 3015: List of changes

Here's the changes in my private build (f - feature, pkg - distribution package, fix - bug fix, org - structure of the project, plat - platform-related stuff, code - making the code better; build number after slash):


  1. [f/20080525] Added: Ctrl+3/Ctrl+4 and Tools Menu → Highlight Words ignoring/not ignoring case. If there's selection, look for and highlight all occurences of the text. Otherwise do this for the word at/before cursor. Ctrl+Shift+4 cleans all highlights and marks from Ctrl+Shift+1/2/3.
  2. [f/3015] Favorite files: via Lua, Ctrl+'. The list of full paths must be in the global properties file in favorites.global.
  3. [f/3015] Double click on the tab closes it (the same as the middle button). Double click on free space in the tab bar opens a new tab.
  4. [f/3014] The tab can be moved left/right (Buffers menu, Ctrl+Shift+F7/F8). Changes to SciTE v.1.73.37Ru/TabsMoving — they don't cycle!
  5. [plat] I built only with VC++ 6.0 for Windows. I removed most of the files not related to Windows.
  6. [pkg] See SciTEStartup.lua for many useful routines (back_up, calculate_total, capitalize, current_word, exec_lua, exec_python_and_replace, fill_rectangle, find_next_function, find_prev_function, mark_text_?, move_word_left, move_word_right, pop_mark, push_mark, replace_version, sort_text, tabs_to_spaces, toggle_bool etc). SciTEStartup.lua
  7. [pkg] A few api files are provided: c.api, lua5.api, python.api, scite.api. See also not_used.rar.
  8. [pkg] The syntax aware lister for Total Commander is provided in the binary directory. Files SciLister.wlx, SciListerReadMe.txt.
  9. [f] The monofont mode is the default mode. SciTEBase.h
  10. [f] I changed default key bindings. See kmap.txt for all my key bindings. KeyMap.cxx SciTEProps.cxx SciTERes.rc
  11. [f] I rearranged the menu a little: Edit, View, Options, Tools. SciTERes.rc
  12. [f] In the Find dialog the default button can be Replace All (property find.defbutton.replace.all=1) or if there's a text region selected, Replace in Selection (find.defbutton.replace.selection). The minimal size of selection for the switching is the value of find.defbutton.replace.selection. Obviously the absence of this option or 0 turns this feature off. SciTEWinDlg.cxx
  13. [f] If in the Find in Files dialog the Files field is empty, then the current file is searched. It works for the internal search only. SciTEWinDlg.cxx
  14. [f] In LuaLexer: The ':' character is added to the word character set.
  15. [f] The file history in the File menu shows files this way: file --- directory. It's much easier to look for a file if the names go first. Even better than File in Directory in the title. (Upd. I changed this too: file[*] -- directory -- StiTE.) I'd love to make the file extensions bold, but I doubt it's easy to do in the menu. SciTEBuffers.cxx
  16. [f] The Buffers menu shows files the same way as in the file history. SciTEBuffers.cxx
  17. [f] There's possibility to draw separators in the Tools menu between items, added by the user with the command options in the properties files. The name of the item, that should go after a serarator, must start with '-'. E.g. command.name.10.*=-&Insert File Name (This doesn't work well for several (>2) separators. I don't know why.) SciTEBuffers.cxx SciTE.h (IDM_TOOLS_SEP)
  18. [f] The commands from the Tools menu are shown in the properties of the tabs, so the separators are shown there too. SciTEWinBar.cxx
  19. [f] Multi-line descriptions in calltips (from M.Foral) SciTEBase.cxx
  20. [f] It's possible to add new commands and bind them to shortcuts w/o showing them in the Tools menu. The configuration properties start with shortcut and the system mimic the command system. The key is specified with shortcut.key, and .name and .shortcut are gone.
    For example:
    shortcut.key.1.*=Ctrl+;
    shortcut.1.*=do_some_stuff_in_lua
    shortcut.mode.1.*=subsystem:lua,savebefore:no
    SciTEBase.cxx SciTEBase.h SciTEBuffers.cxx SciTE.h (IDM_SHORT_KEY)
  21. [f] The maximum number of Tools commands is increased to 80. The number of menuless shortcuts is 100. The number of files in the file history is 20. SciTEBase.h (toolMax, SHORTCUT_KEY_LIMIT, fileStackMax)
  22. [f] SciTE can ignore the USERPROFILE directory and place all property files in its home directory. ignore.userhome=1 rules it. SciTEWin.cxx
  23. [f] I use different layouts on my keyboard for plain keys and for control keys, so it required some changes in SciTEWin.cxx and two properties were added: keyboard.layout and keyboard.translate.ctrl. Probably nobody else needs them. SciTEWin.cxx
  24. [f] The list of contributors is moved to contributors.htm. The About dialog is also much simplier. SciTEBase.cxx
  25. [f] All macro related stuff is gone - it's commented out using "#ifdef IMPLEMENT_MACRO". Let's wait till somebody implements macros in a proper way.
  26. [f] Lua modified: os.execute( cmd_line [, start_path [, options]] ) See the CreateProcess function description for options. I also copied flags from WinBase.h to liolib.c. E.g. 134217728 (0x08000000) is CREATE_NO_WINDOW -- good for runnig cmd.exe. os.execute('cmd.exe /c dir >c:\\tmp\\dt','d:\\temp',134217728) liolib.c
  27. [f] I don't use DirectorExtension so I didn't compile it.
  28. [f] I left only the lexers I may use: LexAsm, LexBash, LexConf, LexCPP, LexCSS, LexForth, LexFortran, LexHTML, LexInno, LexLisp, LexLua, LexNsis, LexOthers, LexPascal, LexPerl, LexPython, LexRuby, LexSQL, LexTCL, LexVB, LexYAML. Not used: LexAda, LexAPDL, LexAsn1, LexAU3, LexAVE, LexBaan, LexBasic, LexBullant, LexCaml, LexCLW, LexCMake, LexCrontab, LexCsound, LexD, LexEiffel, LexErlang, LexEScript, LexFlagship, LexGui4Cli, LexHaskell, LexKix, LexLout, LexMatlab, LexMetapost, LexMMIXAL, LexMPT, LexMSSQL, LexOpal, LexPB, LexPOV, LexPS, LexRebol, LexScriptol, LexSmalltalk, LexSpecman, LexSpice, LexTADS3, LexTeX, LexVerilog, LexVHDL. KeyWords.cxx
  29. [fix] Workaround for VC++ 6.0 was needed for DWLP_USER, GWLP_USERDATA, GWLP_WNDPROC, LONG_PTR, DWORD_PTR, SetWindowLongPtr, GetWindowLongPtr. Platform.h and probably some others
  30. [org] Most (but I'm afraid, not all) of the places in the code I changed, are marked with "G-:"
  31. [org] There are still some scripts in scite\scripts\ but I didn't use them.
  32. [org] Not used but potentially useful stuff was moved to not_used.rar arhives.
  33. [org] Property files were moved to the bin directory.
  34. [org] No embedded version of the editor (sc1).
  35. [org] I left only two make files for scintilla and for scite and they are called from the very root of the project tree, from build.bat. There's also install.bat, which can do "installation" for you after the bulid, and clean.bat which removes all the files created by build.
  36. [org] There are obj dirs for object and pdb files.
  37. [code] In some places the compiler warned about "no return" code. I rearranged those code fragments and as a side effect, the code became clearer. Yes, multiple returns are better then Pascal style ifs.
  38. [code] MultiplexExtension.cxx: Got rid of Pascal style loops.

My SciTE page


Georgiy Pruss © 2006,2007 * http://m-a-s.110mb.com/ * 20070520-195816