Skip to content
This repository has been archived by the owner on Apr 1, 2020. It is now read-only.

Whats New in Oni

Bryan Phelps edited this page Jun 23, 2018 · 18 revisions

What's New in Oni

v0.3.6 - 6/22/2018

  • Enhancements

    • Add config option for default action of QuickOpen (#2080 - thanks @CrossR!)
    • Tutorial: Add visual mode tutorial (#2167 - thanks @keforbes!)
    • WebGL Renderer: Add bold and italic rendering (#2199 - thanks @Cryza!)
    • Add file drag/drop handler (#2179 - thanks @Akin909!)
    • Tutorial: f, F, t, T, ,, ; (#2294 - thanks @brian-yu!)
    • Tutorial: Targets.vim tutorial (#2192 - thanks @nwneisen!)
    • Tutorial: Create text objects tutorial (#2319 - thanks @keforbes!)
    • Tutorial: Cleanup, additional reinforcement & improvements (#2204, #2345 - thanks @keforbes!)
    • Sidebar: Add sidebar.width configuration setting (#2210)
    • Enable use of middle-click to close tabs (#2190 - thanks @texhnolyze!)
    • Configuration: Add editor.fontWeight configuration setting (#2232)
    • API: Add setTextOptions API on the editor (#2262)
    • Notifications: Improve dimensions (#2244 - thanks @badosu!)
    • Configuration: Add keyboard shortcut to edit configuration (#2280 - thanks @ayohan!)
    • Sidebar: Toggle sidebar item on click (#2297 - thanks @CrossR!)
    • Sidebar: Add key bindings to change sidebar width (#2236 - thanks @Akin909!)
    • Menu Bar: Add hidden option (#2237 - thanks @CrossR!)
    • KeyDisplayer: Show full modifier key names (#2340 - thanks @Speculative!)
  • Bug Fixes

    • Fix #2147 - Closed splits use up window space with editor.split.mode set to 'oni'
    • Fix scrollIntoView logic for tabs (#2171)
    • Fix #2060 - Improve responsiveness of tutorials on smaller screens (#2170)
    • Fix #2047 - Canvas rendering improvement (#2187)
    • Fix regression in editor.quickInfo.show functionality (#2193)
    • Fix #2191 - Snippet loading issues (#2196)
    • Performance: Add selector for NeovimBufferLayerView (#2195)
    • Performance: Remove accumulating error styles in document head (#2197 - thanks @Akin909!)
    • WebGL Renderer: Fix out of texture space issue (#2198 - thanks @Cryza!)
    • Fix regression in sneak mode for tabs (#2186 - thanks @Akin909!)
    • WebGL Renderer: Fix artifacts due to overlaps in rendered glyphs (#2207 - thanks @Cryza!)
    • Fix bug with onScrolled event not firing in all cases (#2143)
    • Update intro video with latest features (#2019)
    • Performance: Limit key chord evaluation (#2208)
    • Fix bug with oni.input.unbind not handling arrays (#2216 - thanks @ackey!)
    • WebGL Renderer: Lazily (re)initialize the glyph buffer w/ sufficient size (#2224 - thanks @Cryza!)
    • Explorer: Remove call to clear the oni-backup dir on oni startup (#2227 - thanks @Akin909!)
    • Fix #2185 - Remove call to set scrollbind (#2270 - thanks @Akin909!)
    • Explorer: Change explorer file delete to control+shift+d (#2265 - thanks @nwneisen!)
    • QuickOpen: Fix empty item (#2278 - thanks @Speculative!)
    • Fix #2163 - Override persisted workspace if folder is passed in (#2264)
    • Fix staggered cursor positioner rendering (#2285 - thanks @Akin909!)
    • Explorer: Allow explorer root to toggle (#2290 - thanks @rhendric!)
    • IME: Fix less-than sign problem in IME (#2296 - thanks @ackey!)
    • Explorer: Make readdir more robust (#2301 - thanks @rhendric!)
    • Clipboard: Fix issue with content being trimmed (#2298 - thanks @TalAmuyal!)
    • Textmate Highlighting - GrammarLoader: Properly check if key is in cache (#2321 - thanks @GeorgeTG)
    • Plugin: Fix handling of --plugin-develop argument (#2266 - thanks @nwneisen!)
    • Browser: Fix scroll key binding conflict (#2239)
    • Fix issue where tabState could cause crashes when null (#2335 - thanks @Akin909!)
    • IME: Fix conflicts with autoClosingPairs.enabled (#2338, #2341 - thanks @ackey!)
  • Documentation

    • Fix up contributors list (thanks @badosu!)
  • Refactoring

    • Remove unused parser class (#2263)
    • Convert quickinfo to use styled-components (#2277 - thanks @Akin909!)
    • Move logging to oni-core-logging module (#2283)
  • Developer Experience

    • Use yarn to run npm scripts (#2057, #2177 - thanks @texhnolyze!)
    • Issue template improvements (#2203, #2212, 2309 - thanks @dkns, @CrossR, @TalAmuyal!)
    • Fix build issue with rxjs (#2225 - thanks @Cryza!)
    • Test Fix parsing issues in ui-test tabs (@2226 - thanks @Akin909!)
    • Build: Skip commits that only contain markdown changes (#2303 - thanks @CrossR!)
  • Dependencies

    • Upgrade neovim to 0.3.0 (#2304, - thanks @CrossR!)
    • Upgrade electron to 2.0.2 (#2160)
    • Upgrade prettier and pretty-quick (#2228 - thanks @Akin909!)
    • Upgrade react to 16.3 (#2229 - thanks @Akin909!)
    • Update all submodules (#2287 - thanks @CrossR!)
  • Experimental

    • Markdown Preview: Several bug fixes (#2282 - thanks @CrossR!)
    • Sidebar: Initial plugins pane (#2172)
    • Add --plugin-develop flag (#2189))

v0.3.4 - 5/4/2018

  • Enhancements

    • Add menu command to open new window (#2034 - thanks @Akin909!)
    • Improve default configuration (#1933 - thanks @Himura2la!)
    • Add copy-and-paste tutorial (#2045 - thanks @keforbes!)
    • Prettier plugin (#1540 - thanks @Akin909!)
    • QuickOpen: Leverage VSCode sorting/scoring strategy (#2009, #2126 - thanks @CrossR!)
    • Add config option to have sidebar open by default or not (#2049 - thanks @Akin909!)
    • Add config option for showing reference buffer (#2048 - thanks @CrossR!)
    • Several language grammars added (#2061, #2068 - thanks @Akin909!)
    • Use notification API instead of alerts for recording actions (#2072 - thanks @katakonst!)
    • Add prompt to use init.vim if one is found (#1942 - thanks @Akin909!)
    • Remove sync calls in ExplorerFileSystem (#2077 - thanks @DeltaEvo!)
    • Add optional baseVimBackground for themes (#2083)
    • CanvasRenderer: Align text rendering to vertical pixel boundary (#2090)
    • Themes: Add Hybrid and Gruvbox themes (#2088 - thanks @parkerault!)
    • Use Vim shell option as default value for terminal.shellCommand (#2098 - thanks @DeltaEvo!)
    • Explorer: Add file / folder manipualtion commands to explorer (#1839 - thanks @Akin909!)
    • Explorer: Add FileSystemWatcher (#2116, #2121, #2149 - thanks @Akin909!)
    • Explorer: Add rename file functionality (#2115)
    • Add experimental WebGL renderer (#2120 - thanks @Cryza!)
    • Explorer: Add new file (#2130 - thanks @Akin909!)
  • Bug Fixes

    • Implement scroll delta threshold to improve MacOS scrolling experience (#2042 - thanks @samdoiron!)
    • Use max width for tab names (#2074 - thanks @Akin909!)
    • Stop propogation of event in File Explorer to avoid multiple click events (#2078 - thanks @DeltaEvo!)
    • Markdown Preview: Fix issue with it opening horizontally instead of vertically (#2079)
    • Fix null event when sneak navigation is used (#2099 - thanks @DeltaEvo!)
    • Fix version check to recognize Neovim 0.3.0 (#2103)
    • Add check to ensure there is an error event obj (#2122 - thanks @Akin909!)
    • Fix fs event overload (#2124 - thanks @Akin909!)
    • Fix #2050 - Add a 'game loop' for tutorials (#2128)
    • Fix delete binding to use the isExplorerActive filter (#2162)
  • Developer Experience

    • Build: Add back minimal caching for AppVeyor (#2052)
    • Build: Add commit id when uploading builds (#2053)
    • Build: Upgrade to webpack 4 (#2109 - thanks @DeltaEvo!)
  • Documentation

    • Fix link in README for minimal configuration (#2040 - thanks @rmehner!)
    • Fix typo (#2095 - thanks @tbroadley!)

v0.3.2 - 4/2/2018

Breaking changes

  • OSX / Linux The path for configuration files has moved from ~/.oni to ~/.config/oni - #1478. Make sure to move your configuration files by running:
mkdir -p ~/.config/oni
cp -r ~/.oni ~/.config/oni

NOTE: Double-check and make sure you don't already have a config file at ~/.config/oni - you may want to back-up your config just to be safe! This will overwrite any existing configuration at ~/.config/oni.

  • The filter strategy for our 'fuzzy finder' has switched from fuse to regex - #1793. If you prefer the old behavior, make sure to set the editor.quickOpen.filterStrategy to 'fuse'.
  • Some opinionated defaults were removed from our init.vim in #1811. If you prefer the old behavior, you can bring them back in your init.vim.
  • vim-surround is added as a default plugin.

NOTE: The embedded browser is enabled by default now, but it is still a WIP and an alpha-quality feature - please do NOT use it for anything security critical!

All changes

  • Enhancements

    • QuickOpen: Add refinement capability (#1727 - thanks @CrossR!)
    • QuickOpen: Use regex as the default filter strategy (#1793)
    • Configuration: Use XDG compliant path for config files (Linux/Mac) (#1792 - thanks @rgehan!)
    • Achievements: Implement achievements feature (#1797, #1827)
    • Sidebar: Add learning pane (#1617, #1812, #1825, #1869, #1924)
    • Tutorial: Implement interactive tutorial framework (#1805, #1832, #1868, #1881, #1878, #1880, #1898, #1909, #1900, #1986, #1996)
    • Configuration: Open a split view with a reference of available configuration settings (#1795 - thanks @rgehan!)
    • Achievements: Add 'Trophy Case' buffer layer (#1810)
    • Achievements: Implement initial achievements set (#1891, #1908, #1911, #1976, #1981, #1982)
    • Tidy up and remove options from default vim config (#1811 - thanks @CrossR!)
    • Tutorial: Basic Movement (#1820, #1830)
    • Tutorial: Delete Character (#1912, #1955)
    • Tutorial: Beginnings and endings (#1963)
    • Tutorial: Basic word motion (#1964)
    • Tutorial: Delete operator (#1965)
    • Tutorial: Move-and-insert (#1956)
    • Clean up styling in Menu - remove underline, replace with colored highlights (#1814 - thanks @rgehan!)
    • Update title bar background color for one-dark (#1858)
    • Browser: Implement editable address bar (#1834)
    • Browser: Make browser buttons sneakable (#1867)
    • UX: Add particle system API for use with tutorials / sneak (#1876)
    • Change navigateToProjectRoot to accept folders (#1866 - thanks @CrossR!)
    • Initial implementation of chorded key presses (#1892)
    • Add configuration setting / metadata API (#1896)
    • Browser: Enable sneaking to text input boxes (#1895)
    • Browser: Add 'browser.zoomFactor' configuration value (#1901)
    • Sneak: Add subtle particle effect when selected sneak item (#1910)
    • Support more file types (#1936 - thanks @mikl!)
    • Notification: Add buttons to the notification UX (#1937)
    • Add default configuration for Haskell LSP (#1918 - thanks @Tehnix!)
    • Configuration: Add syntax highlighting to config reference (#1922 - thanks @Akin909!)
    • Enable learning and achievements features by default (#1975)
    • Extend OniCommand to allow passing arguments (#1984 - thanks @CrossR!)
    • Windows: Update builds so that we have dedicated x64/x86 builds! (#1905 - thanks @CrossR!)
    • Tutorial: Add notes column showing relevant keys to use (#1994)
    • Add vim-surround as default plugin (#2003 - thanks @muream!)
    • Tutorial: Find in buffer (#2006 - thanks @muream!)
    • Browser: Auto-prefix URL if needed (#2016 - thanks @Akin909!)
  • Bug Fixes

    • Fix tabs so that they use the correct id when closing / focusing (#1761 - thanks @rgehan!)
    • Statusbar: Add truncation to working directory path (#1775 - thanks @Akin909!)
    • Fix jerkiness on adding a new tab (#1782)
    • Fix GitHub brand typo (#1784 - thanks @montogeek!)
    • Snippets: Placeholder highlighting not rendering on initial insert (#1790)
    • Token colors not being overridden by editor.tokenColors setting (#1791)
    • Fix #1578 - regression in editor.textMateHighlighting.debugScopes (#1794)
    • Fix #1799 - crash with heavy macro usage (#1801)
    • Hide commandline overlay when editor is disposed (#1803)
    • Fix #1798 - Error on load (#1800)
    • Fix regression in autoread workaround (#1819 - thanks @CrossR!)
    • Fix menu empty item selection (#1816 - thanks @CrossR!)
    • Bug fix: Check if linecontent before executing getTokenAt (#1697 - thanks @Akin909!)
    • Fix highlighting of differently cased words in QuickOpen (#1831 - thanks @rgehan!)
    • Highlight text crash fix (#1852 - thanks @CrossR!)
    • Configuration: Handle reload from any editor (#1855)
    • Command Palette: Crop command details when too long (#1879)
    • Fix drag-and-drop of files onto Oni (#1882 - thanks @CrossR!)
    • Sneak: Don't show sneak hints for elements outside the window (#1884)
    • Fix issue where input would be swallowed when switching between multiplexed editors (#1893)
    • Fix regression in auto-closing pairs due to chorded input logic (#1902)
    • Tutorial: Fix null goals showing up (#1904)
    • Tutorial: Don't load init.vim for tutorial experiences (#1966)
    • Tutorial: Improve responsiveness of tutorial completion screen (#1967)
    • Configuration: Fix bug with setting a default value (#1977)
    • Fix #1924 - Tutorial: Swapping tutorials does not work (#1983)
    • Fix accelerator key in Exit menu entry (#2001 - thanks @tom-james-watson!)
    • Fix broken OSX builds (#2014)
  • Dependencies

    • Upgrade electron to 1.8.4 (#1843)
    • Upgrade oni-api to 0.0.41 (#1779)
    • Upgrade electron-builder to 20.5.1 (#1844)
    • Upgrade spectron to 3.8.0 (#1845)
    • Upgrade rxjs to 5.5.8 (#1954)
  • Refactoring

    • Refactor menu-item-click to use command (#1787)
    • Refactor blur/focus handling to WindowManager (#1786)
    • Remove unused errors class (#1788)
    • Remove task registration from editor (#1789)
    • Remove unused project configuration class (#1796)
    • Improve editor disposal (#1807)
    • Refactoring: Move flip animation to separate component (#1808)
    • Refactor FileIcon to styled-components (#1980 - thanks @Cryza!)
    • Refactor HighlightText.tsx to styled-components (#2000 - thanks @Cryza!)
  • Developer Experience

    • We now have automation coverage for our reason language integration! (#1189)
    • Dynamic file associations - consolidation of file assocations across platforms. (#1769 - thanks @mgbennett!)
    • Automation - Stop tests if one fails (#1826)
    • Add test case for autoread functionality (#1824, #1841)
    • Automation: Log out window count prior to stopping (#1833)
    • Automation: Update buffers test to use explicit buffers mode (#1835)
    • Add enzyme testing infrastructure, so that we can now test React components! (#1552 - thanks @Akin909!)
    • Add additional logging for main process, to debug issues with it closing (#1849)
    • Add build script to uplaod builds to azure (#1850)
    • Build: Increase timeout of dmg packing on OSX (#1861)
    • Automation: Update 'stop' logic to retry (#1865, #1872)
    • Build: Add debug logging to electron builder (#1848)
    • Automation: Retry integration tests (#1863)
    • Build: Split travis build steps to improve reliability (#1889)
    • Build: Upload manifest file for successful builds (#1939)
  • Experimental

    • Implement closing splits with editor.splits.mode set to oni (#1703)
    • Focus previous editor on close with oni split mode (#1804)
    • Fix exception when creating a new split after closing a split with oni split mode (#1854)
    • Generalized Preview - scaffolding of API (#1871)
    • Plugin management - add 'plugins' configuration setting (#1903)
  • Documentation

    • Update ISSUE_TEMPLATE.md to point to insiders page
    • Update README.md with link to Patreon
    • Update BACKERS.md with our new backers!

v0.3.1 - 3/12/2018

screenshot-darwin

Breaking changes

  • We moved from gitter to Discord
  • The default for 'tabs.mode' has changed from 'buffers' to 'tabs'. If you prefer the current behavior, make sure to switch this!
  • We also moved to a TypeScript configuration format - updating is optional but recommended - see the Migration Guide.

All changes

  • Enhancements

    • Tabs now show modified state (#1498 - thanks @CrossR!)
    • --help option added to command line (#1509 - thanks @someguynamedmatt!)
    • 'Key Display' feature added (#1551)
    • Implement #55 - Snippet support (#1591, #1605, #1608)
    • Configuration: Use notification instead of alert for reporting errors (#1597)
    • Hover: Implement syntax highlighting in Hover UI (#1443)
    • Tabs: Add folder/file naming if filename is duplicated (#1566)
    • Integrate template files with snippets (#1604)
    • Improve error notification UX (#1618 - thanks @Akin909!)
    • Add sneak buttons to notifications (#1636 - thanks @Akin909!)
    • Enable textmate highlighting by default (#1638)
    • Snippets: Add special buffer layer for snippets (#1641, #1648)
    • Change vim directory if Oni workspace changes (#1643 - thanks @Akin909!)
    • Snippets: Add out-of-box snippets for JavaScript, TypeScript, HTML, and Reason (#1649, #1650, #1668)
    • Add expiration timeout to info notifications (#1637)
    • Image layers (#1619)
    • Switch default 'tabs.mode' to 'tabs'
    • Add entrance animation to sneak (#1672)
    • Snippets: Add variable resolution logic (#1692)
    • Implement drag-and-drop in explorer (#1581)
    • Implement TypeScript configuration editor strategy (#1620, #1733)
    • Implement user snippet loader (#1669)
    • Terminal: Add convenience commands to open in splits (#1731)
  • Bug Fixes

    • Reduced log noise (#1538 - thanks @TalAmuyal)
    • Fix #38: Better error message on startup with invalid init.vim (#1354)
    • Fix issue where null sidebar was returned in certain conditions (#1555 - thanks @someguynamedmatt!)
    • Fix #1256 - Textmate Highlighting not showing until cursor moves (#1298)
    • Textmate Highlighting - fix insert-mode quirkiness (#1257)
    • Fix #1543 - Conflict with quickopen / menu keybindings (#1600 - thanks @TheKnarf!)
    • Fix some tab creation issues (#1590 - thanks @CrossR!)
    • Snippets: Fix issue with zero-length snippet placeholders (#1612)
    • Snippets: Fix ordering of placeholders (#1615)
    • Fix NeovimInstance being undefined on startup (#1630)
    • Fix lint issues in shell scripts (#1613 - thanks @zapashcanon!)
    • Fix bug in default configuration (#1635 - thanks @TitanSnow!)
    • Snippets: Fix synchronization issue when value shortens (#1638)
    • Use absolute path in quickopen (#1645 - thanks @Akin909!)
    • Snippets: Fix boundary case where placeholder is empty and at end of line (#1647)
    • Snippets: Detect whitespace and match (#1662)
    • Fix issue where process.env was changing during execution (#1665)
    • Snippets: Fix issue with snippet placeholders after visual mode selection (#1670)
    • Fix open behavior in tabs vs buffers (#1677 - thanks @Akin909!)
    • Fix duplicate layer issue (#1671)
    • Fix #1681 - regression in open behavior when a path contains spaces (#1687)
    • QuickOpen - add key to open in existing tab (#1685)
    • Fix bug where image layer was added to files w/o extension (#1688, #1676 - thanks @Akin909!)
    • Fix incorrect use of dom purify which was breaking <Components /> (#1701 - thanks @Akin909!)
    • Snippets: Set snippetSupport to true in our LSP client initialization (#1714)
    • Fix bug in cursor position w/ snippets (#1718)
    • Fix #864 - Filter completion by scopes (#1622)
    • Fix #1719 - Add snippets.enabled configuration option (#1720)
    • Snippets: Fix bug where it takes two <esc> key presses to leave snippet mode (#1721)
    • Snippets: Fix ${0} placeholder ordering issue (#1722)
    • Fix inverted conditional in main.ts (#1725)
    • Fix flicker in insert mode with textmate highlighting (#1724)
    • Remove unused attributes from StatusResize state interface (#1739)
    • Enable closing menu popups by clicking on backdrop (#1748)
    • Snippets: Don't show snippets in property / member completion (#1752)
    • Add configuration setting for error notifications (#1754)
    • Fix config option for commandline icons (#1749 - thanks @CrossR!)
    • Allow maximizing the window by double-clicking on the window title (#1762 - thanks @rgehan!)
    • Snippets: Make snippet loader more robust against parse failures (#1751)
    • Snippets: Exception when inserting a snippet without placeholder (#1755)
  • Dependencies

    • TypeScript updated to 2.7.1 (#1535)
    • ocaml-language-server updated to 1.0.27 (#1542 - thanks @freebroccolo and @Akin909!)
    • Upgrade oni-api to 0.0.38 (#1723)
  • Development Experience

    • We now have code coverage enabled, courtesy of codecov!
    • Improve caching logic for binaries on CI machines (#1592, #1595, #1606, #1616, #1621)
    • Fix #1345 - Improve developer experience when starting from webpack (no refresh needed) (#1663)
    • Clear lib_test folder prior to building / running tests (#1684)
    • Automation: Improve process closing logic on OSX (#1689)
    • Automation: OSX reliability fixes (#1700)
    • Use snippet variables in our unit test template (#1729)
    • Stabilize QuickOpenTest - add wait for menu.close command to be available (#1732)
  • Documentation

    • Update CONTRIBUTING.md with details about claiming a bounty (#1734 - thanks @CrossR!)
  • Refactoring

    • Remove unused SidebarPane/SidebarWidget classes (#1596)
    • Factor the 'edit config' command out of editor and into configuration (#1603)
    • Switch menu store to common redux infrastructure, to improve logging and performance (#1686)
  • API

    • Customer input resolvers / listener API added (#1372)
    • Add getPlugin API and way for plugins to expose methods (#1550 - thanks @TalAmuyal)
    • Add API for custom edit strategies (#1609)
    • Add removeLayer API (#1640)
    • Add language contributions in extension manifest (#1657)
    • Update Sneak API to be async, to support browser scenario (#1661)
  • Experimental

    • Initial editor multiplexing work is in (#1405)
    • Add learning pane (#1666)
    • Browser: Add commands to open in horizontal / verticial split (#1690)
    • Browser: Add configuration option for browser default langing page (#1693)
    • Browser: Add initial preload script (prereq for sneak integration) (#1691)
    • Browser: Implement sneak integration (#1699)
    • Add editor.split.mode setting + 'oni' implementation (#1682)
    • Initial Achievements implementation (#1698)

v0.3.0 - 2/12/2018

screenshot-darwin 3

  • Enhancements

    • nord colorscheme by arcticicestudio is now the default
    • Sidebar is enabled by default (#1392)
    • QuickOpen menu now has scrollbars (#1352)
    • Initial implementation of sneak-mode (#1376)
    • Auto-detection of project root workspace (#1402)
    • Add 'empty experience' for explorer and search (#1410)
    • Sidebar: RipGrep search integration (#1394, #1428, #1448, #1451, #1522)
    • Sidebar: Add toggle functionality (#1477, #1508)
    • Show reverse bindings in menu (#1481)
    • Add Control+G binding by default for Sneak mode
    • Add Control+Shift+F/Meta+Shift+F binding for find-in-files (#1482)
    • Error Handling: We now have error boundaries on window splits (#1493)
  • Bug Fixes

    • Add overflow handling to buffer layers (#1391)
    • Fixed workspace open regressions (#1393)
    • Fix OCaml LSP and diagnostic typo (#1404 - thanks @Akin909!)
    • Fix behavior of top highlight when navigating between explorer and sidebar
    • Styling fixes (#1417, #1418)
    • Fix issue with window number error removing buffer bar highlight (#1419 - thanks @Akin909!)
    • Fix regression in enter/space keys (#1423)
    • Fix default config to match new colorscheme (#1429 - thanks @CrossR!)
    • Fix measurement issue with hover UX (#1318 - thanks @Akin909!)
    • Auto-Closing Pairs: Fix quote auto-insertion (#1375 - thanks @CrossR!)
    • Fix keys in Buffer Scrollbar (#1450)
    • Completion: Fix exception when no __provider is available (#1457)
    • Completion: Fix exception when a completion provider returns null (#1516)
    • Fix click window behavior (#1468)
    • Explorer: Fix overflow handling (#1473)
    • Tab Bar: Add inner name component to truncate long names (#1489 - thanks @Akin909!)
    • Windows Installer: Stop waiting for Oni instance at end of install (#1500 - thanks @CrossR!)
    • Fix null exception in handleInput on buffer (#1501)
    • Fix exception when navigating window splits (#1499 - thanks @Akin909!)
    • Fix exception when cancel out of open file dialog (#1514 - thanks @CrossR!)
  • Dependencies

    • Upgrade to electron 1.82-beta5(#1422)
  • Development Experience

    • Prettier is now added by default when committing (thanks @Akin909!)
    • Easier to add configuration settings for CiTests (#1401)
    • CiTests can now be run against local build instead of packed build (#1456)
    • Fixed regression in react/redux devtools after upgrading eelectron (#1467)
    • Failed test messages are shown at the bottom of the log (#1474 - thanks @someguynamedmatt!)
    • Add checks in CiTests to fail if there are any errors (#1491)
    • Add package.json to prettierignore (#1497 - thanks @Akin909!)
    • Address hanging tests by killing any hanging instances prior to each run (#1505, #1511, #1517)
    • Added .nvmrc with node@9 (#1510 - thanks @#someguynamedmatt!)
    • Enable npm run build-debug (#1515)
  • API

    • Input: There is now a reverse-lookup API, to get check for bindings per command (#1365)
    • Window Manager: Add methods to allow for showing / hiding / toggling / focusing Oni-managed window splits (and resize later!) (#1449)
  • Experimental

    • Oni now has a notification API (off-by-default for this release, but will be on for future ones) (#1503, #1504, #1526)
    • Notifications: Show unhandled errors / rejections (#1494)
    • Welcome screen has Vim navigation
    • Sidebar: Marks Pane (#1388, #1430, #1466)
    • Sidebar: Plugin Pane (#1431, #1452)
    • Markdown Preview: Test coverage (#1415 - thanks @TalAmuyal!)
    • Textmate Highlighting: We now synchronize token colors from neovim (#1481, #1485)

v0.2.21 - 1/29/2018

  • Showcase

    • Recent files menu by @Akin909 (accessible by <Control+Tab>):

    recent-menu

  • Enhancements

    • New Buffer Menu - quickly open and switch between your open buffers. Defaulted to <Control+Tab> (#1334 - thanks @Akin909!)
    • Add file associations on OSX (#1245 - thanks @Akin909!)
    • Hover improvements - render markdown and fix tooltip dimensions (#1253, #1339 - thanks @Akin909!)
    • Fix #571 - Workspace: Persist opened folder (#1312)
    • Workspace: Close Folder command (#1384)
    • Workspace: Per-workspace configuration (#1282, #1270)
    • Theme picker menu (#1340)
    • Use file icons in QuickOpen (#1327)
    • Add tabs.showIndex option (#1286)
    • Add tabs.showFileIcon option (#1287)
  • Bug Fixes

    • Fix issue where colors in styled-components were not updated when theme changes (#1276)
    • Fix #1295: Crash when opening a window w/o navigating to it (#1309)
    • OSX: Fix opening a new file when Oni is closed (#1246)
    • Workspace: Validate path exists before switching to workspace (#1382 - thanks @Akin909!)
    • Languages: Fix ocaml-language-server path in packaged builds (#1380 - thanks @Akin909!)
    • Fix #1300 - Handle <space> rather than literal (#1333 - thanks @someguynamedmatt!)
    • Linux: Oni would immediately go to background ('stopped') when starting (#1368)
    • Removed duplicate 'Open Folder' command (#1370)
    • Fix #1297 - Add editor.clipboard.synchronizeYank and editor.clipboard.synchronizeDelete settings (#1342)
    • Fix #1247 - Definition should work when 'editor.quickinfo.enabled' is true
    • Fix #1296 - Colors not showing up correctly for some themes (#1303)
    • Fix regression in editor.quickInfo.show command (#1301)
    • Fixed cursor brightness in nord theme (#1311)
    • Remove icon for default command line (#1293)
    • Auto-closing pairs: Fixed race condition on initial buffer enter (#1273)
    • Fix #1263 - Rename also renames strings (#1274)
    • Fix #1251 - TypeScript standalone server is always spawned on startup (#1267)
    • Fix #1265 - Flicker / movement of neovim popup menu (#1268)
    • Fix #1264 - showmatch causing tab to lose focus (#1271)
  • Documentation

    • Fixed issues with OpenCollective integration (sponsors / backers should now show up correctly)
    • Updated our OpenCollective to use flexible tiers for backers
  • Development

    • Added a prepush and precommit hook to run prettier on source files, to ensure consistent styling (#1361 - thanks @Akin909!)
    • Test Fixes for QuickOpen test (#1356)
    • Enabled CiTests for linux builds (#1338)
    • Integration test for per-project configuration (#1289)
    • Fix instability with 'NoAdditionalProcesses' test (#1335)
    • Use ONI_WEBPACK_LOAD environment variable instead of NODE_ENV (#1313)
  • Refactoring

    • Added Overlays API (#1323)
    • Move our Menu to use our new Overlay API, instead of being baked-in to our shell (#1356)
    • Move Definition, Errors, and Scrollbar to buffer layers (#1322)
    • Add Completion Providers API (#1329)
    • Create reusable VimNavigator component for navigating non-Vim UI
    • Split commands between global commands and per-editor commands (#1316)
  • Dependencies

    • Upgrade tslint to 5.9.1 (#1384)
  • Experimental Features

    • External Commandline: Remove icon (#1249)
    • Explorer: Implement 'delete' gesture (#1262)
    • Explorer: Focus editor window when file is selected (#1374)
    • Explorer: Fix focus behavior when scrolling between top and bottom, and fix mouse interactiosn (#1364)
    • Oni window split management (#1363)
    • Workspace: Test file mappings (#1283, #1360)
    • Sidebar: Some styling tweaks (#1355)
    • Welcome: Initial layer UX (#1285)
    • Welcome: Add version number (#1351)
    • Explorer: Input handling fixes (#1341)
    • Snippets: Initial service + session management (#1284, #1328)
    • Textmate highlighting - #1272: Clearing highlights when line has moved (#1278)
    • Browser: Add initial layer + experimental configuration (#1233)
    • Browser: Add basic commands (#1290)