Kami0.4

Changes
45
Areas
8
Since 0.3.1
3 days

Split editor panes, Vue single-file components, JavaScript and TypeScript formatting, repository tabs, and a scrollbar that shows your changes.

Highlights

Split editor panes
⌘\ splits right and ⇧⌘\ splits down into a real second pane with its own tab strip, and ⌥⇥ moves between panes. Drag a divider to resize; the layout survives a restart.
Vue single-file components
.vue is its own file type: each block of a component is highlighted in its own language, and ⌘/ uses the comment style of the block the caret is in.
JavaScript and TypeScript formatting
The built-in IntelliJ-style formatter now handles JavaScript, TypeScript and TSX, on Reformat Code and on save.
Repository tabs
Open several repositories side by side in the Git view, submodules included, and pull with rebase or merge from a new Pull split button.
Editor scrollbar and hunk actions
A scrollbar doubles as a change stripe, and clicking a change opens a popup to diff, roll back or commit that hunk alone.

Editor

9 changes
  • A vertical scrollbar on the right edge, with a mark for every changed hunk, and a horizontal scrollbar when a line runs past the viewport. Both brighten on hover, and bookmarks get a tick on the stripe.
  • Click a change mark or a gutter hunk to open a hunk popup: compare against HEAD side by side, roll the hunk back as one undoable edit, commit just that hunk, or step to the next or previous change.
  • An ignored file is no longer painted as one big addition in the gutter.
  • Right-click in the text for Go to Definition, Find Usages, Rename, Cut, Copy, Paste, Reformat, Toggle Comment, Fold and Search in Workspace. Each row shows its shortcut from the active keymap, and read-only views only offer rows that work there.
  • Right-clicking inside a selection, including on its last character, keeps the selection.
  • Right-click the gutter to annotate with git blame, or to close the annotations.
  • A fold chevron appears on every foldable region, including arrow functions, object and array literals, call arguments and JSX elements.
  • More accurate highlighting in JavaScript and TypeScript: imports, JSX component tags, constructors and SCREAMING_CASE constants get their own colours.
  • JSDoc tags now colour the {type} and the parameter name they document.

Tabs and splits

6 changes
  • Every editor pane has its own tab strip above it, instead of one strip in the titlebar.
  • The tab menu offers Split Right and Split Down, and both are in the palette and the View menu.
  • Double-click a pane divider to even out the split.
  • Closing a pane’s last tab closes the pane, and its neighbour takes the space.
  • Opening a file that another pane already has shares the same buffer, so edits in one pane show in the other.
  • Tab names are coloured by their git status.

Formatting

4 changes
  • JavaScript, TypeScript and TSX formatting: spacing around operators, punctuation and keywords, blank lines around declarations and after imports, and wrapping of long call arguments, parameter lists, method chains, binary expressions and ternaries.
  • TypeScript type annotations, generics, interfaces and enums are formatted, and a short inline type literal stays on one line.
  • TSX attributes and expression containers are formatted, and JSX text is left as written.
  • New code style options for the JavaScript wrap settings and blank-line counts, also read from an imported .idea scheme.

Code intelligence

4 changes
  • ⌘B and ⌘-click follow an import straight from disk, so stylesheets, Python modules and config paths are clickable even without a language server.
  • Imports through tsconfig/jsconfig paths aliases and node_modules packages resolve on disk too.
  • ⌘-clicking a folder in the middle of an import path reveals that folder in the file tree.
  • ⌘B on a declaration shows its usages, like Go to Declaration or Usages in JetBrains IDEs.

Search and navigation

3 changes
  • ⌘F fills the find bar with the selected text, already selected so typing replaces it. The palette’s Find in File row does the same.
  • Esc closes the find bar even after you click into the text, and the esc key cap in the bar is clickable.
  • The ⌘K list colours files by git status, including files inside vendored repositories and submodules.

Git view

5 changes
  • Open several repositories in tabs. A submodule can open in its own tab, ⌃⇥ and ⌃⇧⇥ cycle tabs, ⌘W closes one, and the open tabs are restored with the session.
  • Column widths are shared across repository tabs.
  • Pull is a split button with fast-forward only, rebase and merge.
  • Every icon button has a tooltip; Pull and Push say which branch and remote they act on, even when disabled.
  • The commit summary and description boxes have captions.

Database view

5 changes
  • The query console completes tables, columns and enum values from the database’s catalog.
  • Double-click a table or view, or choose Open Data, to query its rows in the console.
  • MariaDB is its own engine in the Add data source dialog, and its server version is reported correctly.
  • A Database chip in the titlebar takes a console opened as an editor tab back to the Database view.
  • Fixed the result grid showing no rows.

App

4 changes
  • Icons in the titlebar switch between the editor, Git view and Database view.
  • New Project… and Open… rows in the recent-projects dialog, which now opens even with no recent projects. Reach it from the File menu, the palette, or a click on the workspace name in the file tree header.
  • Dragging a tab reorders it instead of moving the window.
  • The file tree scrolls sideways for deep paths, with a horizontal scrollbar.