CodeLite 18.0.0
This page contains the accumulated changes since CodeLite 17.0.0
Downloads
As always, all downloads are available through our download page
Changes
- Windows Installer updated
- CodeLite now uses 2 top level toolbars:
- Main toolbar, a native one. Placed on the LEFT by default. This can be changed from the
View
menu - Generic one for the plugins (placed on the second row)
- Main toolbar, a native one. Placed on the LEFT by default. This can be changed from the
- All images are loaded from SVG files
- git plugin: by default, disable the "Commit" info in the navigation bar
- File System Workspace: when launching an executable, use terminal
- Source code formatter: added support for
cmake-format
(doc updated for how to install it) - Registered
CMake
as a language in CodeLite and associate it with the file typeTypeCMake
- Windows: MSYS2 is now located using the registry entries first
- Aligned wxCrafter version with CodeLite's one
- Updated CodeLite icon
- Rust compiler: collect crate paths (as reported by cargo during the build) to properly open files with errors (these files paths are reported relative to the crate's Cargo.toml file)
- Language Server: do not fire a code completion request when typing inside a comment or string
- Preferences Dialog: Add missing translations (rlbxku1r)
- Update
codelite.pot
(rlbxku1r) - Update Japanese translation (rlbxku1r)
- Language Server: optimized the chatter between CodeLite and the LSP:
- Only ask for semantic tokens when the file is loaded or saved
- Instead of sending the full file content to server each time a reparse is needed, send the incremental diff (
vector<TextDocumentContentChangeEvent>
) - moved CodeLite log file location into a separate folder
- Fixed
LSP::Range
serialisation to JSON
- Language Server:
- Removed the "priority field"
- Allow the user to add custom
initializationOptions
(per the spec)
- Dropped support for
RLS
language server (was deprecated in favour ofrust-analyzer
) -
Language Server:
- Support
cmake-language-server
auto detection (docs updated) - fixed: sometimes, the lsp report back with lower case file paths on Windows.
- Support
-
source code formatter: when a command is not found, disable the formatter by default
-
SSH session: allow the user to change the SSH behaviour by providing the following 3 environment variables:
SSH_OPTIONS_KEY_EXCHANGE
: Set the key exchange method to be used (string, comma-separated list). ex:ecdh-sha2-nistp256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
SSH_OPTIONS_HOSTKEYS
: Set the preferred server host key types (string, comma-separated list). ex:ssh-rsa,ssh-dss,ecdh-sha2-nistp256
SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES
: Set the preferred public key algorithms to be used for authentication (string, comma-separated list). ex:ssh-rsa,rsa-sha2-256,ssh-dss,ecdh-sha2-nistp256
-
C++ version required by CodeLite is now C++17
- CodeLite no longer requires
ssh
terminal to execute remote commands. It now usesssh_channel
fromlibssh
- Colours and fonts dialog:
import
toolbar button now allows to select multiple themes to import - Colours and fonts dialog: newly imported themes will use the global font by default
- Optimized loading of huge JSON files (
~100MB
of json file) - If the user provided its own mkdir command, do not manipulate it by double quoting it
- Clear modified lines after a file was formatted (otherwise, the entire file is marked as "modified")
- Minor UI change for the word highlight markers
- Added syntax highlight for
TCL
language - python: support colouring
f-string
(requires one to click on the "Restore" button) - Deprecate the
Default
build system when creating new project, default toCodeLite Makefile Generator
- performance improvement for the ZoomNavigator plugin
- Implemented: ZoomNavigator zoom factor
- ZoomNavigator: the view now also sync the error / warning markers from the "real" editor
- Changed: remote interactive processes are started using a proxy script
- git: prompt the user in case of failure to commit locally
- Remoty: implemented "replace in files" for remote files using
sed
+grep
- Dropped support for codelite-terminal
- highlight word: remove the "HAND" cursor when hovering a highlighted word
- Experimental: added a built-in terminal. This is not a "full blown" terminal, i.e. you can't use it to edit using
vim
. It does however, support running complex commands and support various operations - Language Server: support
workspace/codeActions
. A code action are fixes suggested by the language server. An example for a C++ code action: added missing include header or add missing;
etc - Language Server: detect broken paths in configured LSPs and prompt the user with a fix-it button
- CppCheck plugin: use the system installed cppcheck tool instead of installing an old version with CodeLite
- Rust editor: support keyboard for commenting / uncommenting code (
Ctrl-/
+Ctrl-Shift-/
) - Rust editor:
!
is a valid word char - source code formatter: if no formatters are configured, trigger a scan on startup
- Remote workspace + Remote SFTP view: in case of disconnection due to inactivity, attempt to reconnect
Ctrl-TAB
is now working for all notebooks, not only for the main editor book- Language Server Plugin: clicking on the "Scan" button prompts the user
- Language Server Plugin: the "Scan" button now replaces all entries with what CodeLite found
- Implemented: Show/Hide Main Toolbar
- Git plugin: the branch name is now shown in the status bar along with the git icon
- Mark LSP warnings/hint/info with yellow markers and not with the standard error marker
- Added support for Kitty terminal (Linux & macOS)
- git: support using an external diff tool (e.g. winmerge, vimdiff etc)
- Debug Adapter Protocol Client (DAP): fixed issue with breakpoint not set correctly
- Debug Adapter Protocol Client (DAP): fixed bug where init para
cwd
was set to empty value when launching the server - Debug Adapter Protocol Client (DAP): should now be working with VS Code
cpptools
- Icons update
- LSP: rename symbol is now supported
- Remoty: reduce a remote workspace load time
codelite-cc
is replaced with cc-wrapper- Status bar: added 2 buttons on the left side of the status bar for quick showing/hiding the sidebar / bottom bar
- UI redesign: the sidebar is now a new "button like" control. An additional "secondary sidebar" was added. User can move items from the primary sidebar to the secondary
- Status bar: added a "show secondary sidebar" button
- Linux: the IDE is now built using the generic notebook control (changes in wxWidgets no longer allows us to maintain our custom book control)
- Outline view: reduce the font size to be 80% of the default editor font
- Git: support "Redirect" response from server
- Zoom Navigator: the marker is now centred.
- Zoom Navigator: make the marker a bit more visible
- Zoom Navigator: use arrow cursor for the view
- Hide namespaces in outline view
- VC compiler: improved warning / errors parsing
- Build settings: updated the "Patterns" tab to a more modern look
- Built-in terminal: on Windows, attempt to detect VS installation and offer various shell types:
CMD
,BASH
orCMD for Visual Studio NN
- Built-in terminal: number the tabs
- Use a "hand" cursor when displaying clickable url under a symbol
- Use sensible pane sizes for new installs
- Allow the user to reposition the sidebar buttons to: top, left or vertical (the default). This can be done from:
settings -> preferences -> tabs -> sidebar buttons position
- Git console: added context menu to the "log" view (copy/clear)
- Make the various markers (spellchecker, word highlight etc) more visible in dark themes
- Increased the git field width in the status bar
- Performance improvements
- Side bar: respond to DPI change event
- Main editor tab control is now using a subclass of wxAuiNotebook. This allows the user to place tabs side by side by simply dragging them
clangd
detector: the--limit-results
flag now uses the value set by the user insettings -> code completion -> number of items to display
- Code completion box: when there is exactly one match in the code completion box, and it matches what the user already written in the editor -> dismiss the box
- Code completion help window: wait 250ms before attempting to display it, this reduces the CPU cycles when quickly moving items in the code completion box
- Get back toolbar buttons and add few new buttons (Rozhuk Ivan)
- Code completion box: allow
'
in the cc box (used by various languages likeRust
) - Increased git field width in the status bar
Bug fixes
- Subclass of wxSpinCtrl crashes wxCrafter
- Fixed: find in files: exclude patterns are not always working
- wxCrafter: removed the
wxTRANSPARENT_WINDOW
style (it was changed to0
in wxWidgets, that caused it to looks like it is always enabled in the UI) - Language Server: in case the lsp command does not exist, disable it (better than the alternative: crashing CodeLite)
- latest master build fails with assertion dialog during startup
- Support horizontal scrolling in the various tree/list controls in CodeLite
- always use
mkdir -p
(which should be available on platforms) - Fixed: windows GDI objects leak
- Before opening SSH session, apply the environment variables
- more assertion fixes with debug builds of wxWidgets
- Outline view does not work
- cancel calltip + cc box when the editor is losing the focus
- support importing alacritty colour themes into CodeLite
- Run (CTRL+F5 shortcut) won't work after Build (F7 shortcut) in version 17.1.0
- Remember last scroll position in code tabs
- 'Trim only modified lines' checkbox UI problem
- restore the save/save-all toolbar buttons
- fixed: Alacritty terminal not working on macOS
- fixed: When repeatedly launching processes, the environment variables might grow until a point where
execvp()
returns withE2BIG
and eventually crashing CodeLite - Trim Trailing Spaces (Edit menu) does not work
- fixed: git console "Add file" & "Reset file" are now enabled based on the list state
- Fixed: git plugin should now be disabled when there is no active git repository
- Fixed: git console buttons: "Add file" & "Reset file" not working
- Fixed: remote language servers started by CodeLite, now honour the
env
field of thecodelite-remote.json
file - fixed: file system workspace: properly restore the session after load
- fixed: CodeLite loses focus when build completes
- fixed: CodeLite crash if home directory contains non ASCII chars
- simplify the auto-indent when ENTER is hit after "public" keyword
- When closing the last tab in the editor, clear the window frame title
- Fixed: Removing file(s) in Workspace View also removes deselected files, wrong dialog, bad spelling...
- fixed: Bug/Regression: Left-click on ruler to place a break-point shows right-click popup menu instead
- Fixed: RXVT terminal: support multiple executable options (
rxvt-unicode
,rxvt
andurxvt
) - Fixed: Zoom navigator: saving a file loses the focus
- Fixed: ctags include dirs
- Fixed: function description box is larger than the screen
- Various fixes to make CodeLite working better under
GDK_BACKEND=wayland
- Bug: Moving cursor up/down through code with up/down buttons very slow, causes large CPU usage
- fixed: Bug: Filesystem Workspace does not include file extensions with upper case
- fixed: MSW: File System Workspace: use ignore-case for file comparison when attempting to locate file in the tree view
- Rust (remoty) - do not attempt to guess the current working directory, just use the workspace path as the root
- CppCheck crash