Oni Versions Save

Oni: Modern Modal Editing - powered by Neovim

v0.2.21

6 years ago

v0.2.21

Installation Guide

What's new?

  • 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)

Looking forward

Next release is tentatively planned for 2/12 (2 weeks cadence). It'll be a big release, because I'd like to enable several 'experimental' features to be on-by-default:

  • Sidebar
    • Explorer
    • Bookmarks
    • Search w/ ripgrep
  • External commandline / wildmenu
  • Textmate Highlighting
  • Welcome Experience

I'm also working on getting a code-signing certificate for Windows - hopefully we'll finally have Windows code-signing for this release.

It's ambitious... but I'm very excited about where we're heading!

Thanks!

Thanks to all our backers and contributors for making Oni possible!

Shout to all our supporters this month!

  • @jordwalke
  • @mhartington
  • @ayohan
  • @badosu
  • @adambard
  • @rrichardson
  • @sbuljac
  • @josemarluedke
  • @Akin909
  • @TalAmuyal
  • @TotempaaltJ
  • @mchalkley
  • @benjamin-rood
  • @christianralph

If you find Oni useful, please consider supporting us via:

v0.2.20

6 years ago

v0.2.20

  • Bug Fixes

    • Fix bug with buffer state on buffer deletion (#1086 - thanks @Akin909!)
    • Fix completion flicker (#1147)
    • Handle shift+space key (#1151)
    • Fix autoread setting (#1156 - thanks @CrossR!)
    • Fix blank screen when Neovim is not available (#1157)
    • TypeScript: Improve error reporting (#1161)
    • Fix regression in opening files from command line (#1182)
    • #1178 LSP: Fix sending incorrect client capabilities (blocking Go language server) (#1185)
    • Fix regression for missing titlebar in OSX, and add test (#1218)
    • Fix #963 - delete word in 'lightweight' text control (#1227)
    • Add key to scrollbar container (#1228)
    • Fix vertical rendering cracks (#1224)
    • Fix default config json syntax (#1244 - Thanks @sethwoodworth!)
  • Enhancements

    • Fix #1009 - persist background color (#1117)
    • Added solarized theme (#1122)
    • [Experimental] File Explorer: Implement folder expansion (#1158)
    • Window state is now persisted when closing / opening Oni (#1160)
    • You can now use flow-language-server following the instructions here: JavaScript and Flow - (#1190 - thanks @Akin909!)
    • Add focus gained and focus lost hooks (#1198 - thanks @Akin909!)
    • Pass statusbar priority from config (#1210 - thanks @Akin909!)
    • Oni now renders bold and italic styles! (#1203 - thanks @Akin909!)
    • Add buffer.addLayer API, and integrate initial browser-layer plugin (#1214, #1223)
    • Implement status bar resize logic (#1211 - thanks @Akin909!)
    • [Experimental] Sidebar: Used styled-components for sidebar (#1229)
    • Performance: Separate loading / entrance animations for shell & editors (#1236)
  • Development

    • Add react dev tools and redux dev tools - greatly improving the development experience. (#1142 - thanks @Akin909!)
    • Automation: Fixed issue where OSX tests would always show as passing (#1153)
    • Fix #1154 - Automation: CiTests no longer clobber configuration files (#1167)
    • Automation: Use spectron to get console logs instead of our own strategy (#1239)
  • Refactoring

    • Split bundle via async imports (#1123)
    • Remove global state from NeovimEditor (#1175)
    • Track size for all windows on tabpage (#1180)
    • Fix initialization path, and make dependencies explicit for statusbar (#1184)
    • Remove unused cross-browser-ipc request (#1206)
    • [Experimental] TextMate highlighting - add unit tests (#1215)
    • [Experimental] Sidebar: Add API for dynamically adding sidebar items
  • Dependencies

    • Bring in styled-components (#1134 - thanks @samvv!)
    • Replace css-language-server with vscode-css-languageserver-bin (#1207 - Thanks @DeltaEvo!)
    • Update oni-api to 0.0.23 (#1222)
    • Integrate vscode-html-languageserver-bin (#1208 - thanks @DeltaEvo!)
  • Documentation

    • Fix link to build section
  • Experimental:

    • Experimental features are currently unstable and off-by-default - but we'd love your feedback!
    • Markdown Preview is now available via setting experimental.markdownPreview.enabled to true! (#922, #1181 - Thanks @TalAmuyal!)
    • Externalized command line / wildmenu is available via setting experimental.commandline.modeto true! (#1177, #1179, #1191 - Thanks @Akin909!)
    • Add search icon for commandline (#1230 - Thanks @Akin909!)

Thanks!

Thanks to all our backers and contributors for making Oni possible!

If you find Oni useful, please consider supporting us via:

Shout to all our supporters this month!

  • @jordwalke
  • @mhartington
  • @ayohan
  • @badosu
  • @adambard
  • @rrichardson
  • @sbuljac
  • @josemarluedke
  • @Akin909
  • @TalAmuyal
  • @TotempaaltJ
  • @benjamin-rood

v0.2.19

6 years ago

v0.2.19

screenshot-win32 3

  • Bug Fixes

    • Path issues in OSX are addressed (#1066 - thanks @Akin909!)
    • #980 - Rename is undo-grouped per file (#1005)
    • #1063 - Only underline items if a definition is available (#1070)
    • Hide neovim popup menu when switching buffers (#1077)
    • #1076 - Fix crash on buffer change event (#1079)
    • Prevent text selection of statusbar (#1088 - thanks @Akin909!)
    • Fix off-by-one issue in quick fix window (#1092 - thanks @CrossR!)
    • Fix colors for syntax highlighting
    • Fix #1064 - large files crash in Oni (#1113)
    • Fix #1076 - hide the titlebar in OSX when fullscreen (#1115)
    • Fix language support when opening typescript/javascript file from args (#1126)
    • Fix git branch in statusbar (thanks @Akin909!)
  • Enhancements

    • Icon themes - we now bundle Seti UI icons and use them by default (#1087)
    • The mode is now highlighted in the tab bar (#1091). You can set tabs.highlight to false to disable this.
    • Add language-specific token regexes (#1099 - thanks @CrossR!)
    • Add default font units in configuration (#1097 - thanks @CrossR!)
    • Auto-closing pairs is now enabled by default. See Auto Closing Pairs for information on configuring.
    • New Window menu item is now available on the OSX dock menu (#1111 - thanks @Akin909!)
  • Performance

    • Typing prediction is now enabled by default. If you see any oddities in insert mode, this can be disabled via setting editor.typingPrediction to false.
    • #372 - Metrics added for startup performance, and some initial work to parallelize startup tasks
  • Documentation

    • Fix contributors link (#1094 - thanks @chenglou!)
    • Add info on macOS PATH and key repeat (#1095 - thanks @chenglou!)
  • Other

    • Auto-update is off by default, since it is a no-op anyway (#1101)
    • OSX build is now code-signed!
  • Experimental

    • Experimental features are currently unstable, incomplete, and off-by-default
    • TextMate Highlighting - allows for finer grained syntax highlighting leveraging TextMate themes (set experimental.editor.textMateHighlighting.enabled to true)
    • Sidebar and File Explorer - wip file explorer (set experimental.sidebar.enabled to true)

Thanks!

Thanks to all our backers and contributors for making Oni possible!

If you find Oni useful, please consider supporting us via:

Shout to all our supporters this month!

  • @mhartington
  • @ayohan
  • @badosu
  • @adambard
  • @rrichardson
  • @sbuljac
  • @josemarluedke
  • @Akin909
  • @TalAmuyal
  • @TotempaaltJ

v0.2.18

6 years ago

v0.2.18

image

  • BREAKING

    • Colorschemes - colorschemes must now be specified via ui.colorscheme in your config.js, as opposed to in the init.vim
    • editor.completions.enabled is now editor.completions.mode, with the following options:
      • 'oni' (default) - Uses Oni's language server completion, and externalizes Neovim's popup menu
      • 'hidden' - Turns off Oni's language server completion, but still externalizes Neovim's popup menu
      • 'native' - Turns off Oni's language server completion and the externalized popup menu -uses the native Vim popup menu
    • tabs.enabled and tabs.showVimTabs have been coalesced into tabs.mode:
      • 'buffers' (default) - show buffers with Oni's tab UX
      • 'tabs' - show neovim tabs with Oni's tab UX
      • 'native' - show neovim tabs, with neovim's native UX
      • 'hidden' - don't show any tabs at all
  • Enhancements

    • #63 - Synchronize titlebar color on OSX
    • Performance: Use 'redux-batched-subscribe' in our redux stores to minimize rendering overhead (#1011, #1026)
    • Clean up outdated examples (#999)
    • Fix our $PATH resolution logic - this should address some nagging path issues we had #868 - (#934 - thanks @Akin909!)
    • CSS Language Server - .scss files are now added to the default configuration (#960)
    • Scrollbar enhancements in the tabline (#993 - thanks @Akin909!)
    • #950 - Colors can be customized for UI elements (#975)
  • Bug Fixes

    • Edit Neovim config command now works correctly (#969 - thanks @CrossR!)
    • Minimize keybinding now works correctly on OSX (#964 - thanks @Akin909!)
    • #1006 - Fix hover + definition behavior when moving the cursor (#1044)
    • Fix QuickOpen sizing (#1030 - thanks @Akin909!)
    • #956 - Several autocompletion oddities are fixed, and we now have unit tests to exercise problematic cases (#972, #1049)
    • Fix selection issue on buffer bar (#1013 - thanks @Akin909!)
    • Fix bug where two <ESC> presses were needed to close the completion menu (#995)
    • Bug fixes with rename dialog (#968)
    • Status bar fixes for language server (#967)
    • Fix TextMate highlighting in cases where Vim filetype contains a '.' (#1047 - thanks @Akin909!)
    • Add default TextMate files for .go (thanks @josemarluedke)
  • Configuration Changes

    • Implement editor.completions.mode (#1022 - thanks @CrossR!)
    • #1041 - Implement editor.scrollBar.cursorTick.visible option
    • #981 - Use editor.fontFamily setting for completion & tooltips
    • Fix #1012 - add the ui.fontSmoothing option (#1033)
  • Dependencies

    • Upgrade to Neovim 0.2.2
    • Upgrade TypeScript to 2.6.1
    • Our dependent Vim plugins have been migrated to submodules (thanks @CrossR!)
  • Documentation

    • Clean up references to old repo (#1021 - thanks @CrossR!)
    • Fix typos (#985 - thanks @daynin!)
    • Fix broken links (#984)
  • EXPERIMENTAL

    • Experimental features are currently unstable and off-by-default
    • Typing Predictions - faster insert mode typing (enable by setting experimental.editor.typingPrediction to true)
    • TextMate Highlighting - allows for finer-grained syntax highlighting leverage TextMate themes (set experimental.editor.textMateHighlighting.enabled to true)
    • Auto-closing pairs - auto-closing pairs, per language (set experimental.autoClosingPairs.enabled to true)

Thanks!

Thanks to all our backers and contributors for making Oni possible!

If you find Oni useful, please consider supporting us via:

Shout out to our all our supporters this month!

  • @mhartington
  • @ayohan
  • @badosu
  • @adambard
  • @rrichardson
  • @sbuljac
  • @josemarluedke
  • @Akin909
  • @TalAmuyal

v0.2.17

6 years ago

v0.2.17

  • BREAKING
    • Windows-Only: config.js location has moved from %HOME%/.oni/config.js to %APPDATA%/oni/config.js - thanks @CrossR!

    If you are on Windows, and have a custom configuration, make sure to move your config.js to the new location. This does not affect init.vim.

  • Bug Fixes
    • Fix #911, #900 - handle cases when nvim is not on path more gracefully (common issue users hit on Linux)
    • Fix #868, #919, along with several other nvim path issues - this was a major pain point for OSX users. Thanks @Akin909 for tackling this, and congrats on the first PR! :smile:
    • Fix keybinding conflict between QuickOpen and Symbol Search in #927 - thanks @CrossR!
    • Fix #923 - configuration in after folder is not recognized (#935)
    • Removed experimental.enableLanguageServerFromConfig feature flag - configurable language servers is now on by default. (#920)
    • Windows: Removed nvim-qt executables from packaged binaries, since they are unused (#917)
    • Fix completion details flickering (#915)
  • Other
    • Integrated css-language-server - completion out-of-the-box for CSS and LESS!
    • Add default binding for <ESC> to leave terminal mode (#915)
    • Add subtle cursor motion for instant typing feedback (#888) - you can disable this by setting ui.animations.enabled: false if you find it distracting!
  • Documentation
    • Shorcuts page added to our wiki - thanks @CrossR!
    • Development - clarifications around dependencies + linux build - thanks @keforbes!
  • Experimental
    • Auto-pairs functionality is being developed behind the experimental.autoClosingPairs.enabled setting (off by default for now)
  • Dependency Updates
    • ocaml-language-server was updated to 1.0.12 - thanks @freebroccolo!

Looking forward

Some cool works-in-progress in varying states:

In addition, there are some additional language server features that need to be polished - rename, code actions (refactoring), and code lens. Wrapping those up will get us to our 0.3 milestone.

Thanks!

Thanks to all our backers and contributors for making Oni possible!

If you find Oni useful, please consider supporting us via:

v0.2.16

6 years ago
  • Upgrade to neovim 0.2.1!
  • Remove vscode-ripgrep dependency in response to #889 - Windows builds are back.
  • Add setting for ui.fontFamily - allowing for separate fonts for the shell and editor (thanks @badosu for catching the typos)

v0.2.15

6 years ago

NOTE: Windows builds were temporarily removed due to a report of malware - #889. It is not clear if it is a false positive (Windows Defender does not detect any malware), but to be safe, please scan your machine. To be safe, I've removed the vscode-ripgrep dependency, and will be publishing a new build.

v0.2.15

Some big milestones this release:

  • We have an org! Moved from bryphe/oni to onivim/oni

  • We have a website! http://onivim.io

  • We have an Open Collective!

  • Language Server Support

    • Oni supports configurable language servers. See Language Support for more information on using this functionality.
    • Complete refactoring of existing plugin infrastructure
    • Trigger characters for completion are customizable (#861 - thanks @CrossR!)
    • TypeScript / JavaScript completion bug fixes (#839)
    • ocaml-language-server is included with Oni (#841), to enable first-class support with Reason & OCaml
    • Signature Help is now supported (#814)
    • Symbol search is now supported (#819)
    • Rename is now available (F2) (#819)
  • UI Improvements

    • Hover UX animation (#879)
    • Errors are stacked in hover UI instead of overlapping (#804)
    • Additional configuration for tabs look & feel (#832)
    • Statusbar height adjustments (#828 - thanks @badosu!)
  • Bug Fixes

    • Scroll bar / cursorline not in correct window (#818)
  • API Changes

    • directory-changed event was moved to oni.workspace.onDirectoryChanged (#813)
    • Added onBufferSaved event
  • Other

    • Implemented Help -> About (#872)
    • New setting: editor.quickOpen.caseSensitive (#831)
    • C-c and C-[ now close the menu too (#833 - thanks @jared-skinner!)
    • Removed beep.wav and ASSETS.md (#866)
    • More robust automated tests (#850)
    • Windows Installer: There is now an option to add Oni to right-click menus (thanks @CrossR!)
    • Improved OSX defaults for QuickOpen and Command Palette (#824)

Looking Forward

There is still a bit more work to do around the language service - especially around streamlining the UX and adding code actions / refactoring.

In addition, we're starting to make progress on adding some enhanced UX functionality - like a file explorer and syntax highlighting - bringing us closer to the vision of breaking free of terminal limitations.

Supporters

Shout out to our supporters this month!

  • @mhartington
  • @ayohan
  • @badosu
  • @adambard
  • @rrichardson
  • @sbuljac
  • @josemarluedke
  • @Akin_So

Thank you for your support!

v0.2.14

6 years ago
  • Fix regression in QuickOpen when Oni is installed to a path that includes spaces

v0.2.13

6 years ago

v0.2.13

Updates

  • Configuration
    • Add oni.enhancedSyntaxHighlighting configuration value to enable enhanced syntax highlighting from Oni (#785)
    • Allow oni.loadInitVim to take a string value to a custom init.vim path (#784 - thanks @CrossR!)
    • Add some debug settings to help narrow down #490 (#796)
  • Enhancements
    • #269 - Enable asynchronous loading of menu items, and add oni.menu API (#764)
  • Bug Fixes
    • #541 - Fix for redrawing during resize, and improving font quality when there is no background (#753)
    • Replace px with em for statusbar (#780)
    • #473 - Open binaries crashes Oni (#777)
    • #562 - fix remaining boundary cases for QuickInfo positioning
    • Remove extensions folder creation on launch (#790)
    • OSX - change quit to quit app instead of close current window (#787 - thanks @MikaAK!)
    • #436 - Edit neovim config action doesn't always work on Windows (#799)
    • Added border for QuickInfo UI (#798 - thanks @josemarluedke for the proposal and idea!)
  • Documentation
    • Add wiki page for syntax / compilation errors (#779 - thanks @keforbes!)
  • Depedencies
    • Upgrade TypeScript dependencies and check-in package lock files (#791)
  • Refactoring
    • Refactor executeAutoCommand so that it is more robust in the general case (#681)
    • Clean up unnecessary redux actions (#786)
    • Remove unused evaluate block and replace mode-changed with the editor API (#792)
    • Remove package-lock files and .gitignore (#795)
    • Make NeovimInstance notification arguments immutable (#794 - thanks @cdelahousse!)

Looking Forward

The next planned release will be 10/30, and the goal for that is to continue the language client work. The primary goal is to enable language server integration to be specified by configuration, along with bug fixes.

There are also a few stretch goals:

  • Improved go-to definition UX
  • Refactoring / code action support
  • Code lens support
  • Enhanced syntax highlighting (via TextMate themes)

Supporters

Shout out to our supporters this month!

  • @mhartington
  • @ayohan
  • @badosu
  • @adambard
  • @rrichardson
  • @sbuljac
  • @josemarluedke

Thank you for your support!


v0.2.12

6 years ago

v0.2.12

Updates

Highlights

  • Oni can now leverage clangd for C/C++ completion! Thanks @TalAmuyal for your PR and investigation to enable this.

output

  • QuickOpen and Command Palette now match the colorscheme:

quickopen-match

New Features

  • Support opening file in a new tab from QuickOpen (#761 - thanks @badosu!)
  • Added oni.maximizeScreenOnStart configuration option (#771 - thanks @CrossR!)
  • Add support for clangd as an LSP client (#757 - thanks @TalAmuyal!)
  • #416 - Added oni.recorder API (#739)

Bug Fixes

  • Fix #483 - Cmd+Q now quits on OSX (#768)
  • Fix #644 - BracketLeft key not working on Windows 10 es-ES keyboard (#767)
  • Fix #713 - Provide an option to configure statusbar size (#749)
  • Fix ERR_FILE_NOT_FOUND on startup in developer tools (#754)
  • Fix #714 - HDPI issues and setup QuickOpen to match colorscheme (#749)

Looking Forward

The focus for the next release is continuing to address blockers preventing you from using Oni as your daily editor. In addition, we'll be ramping up the investment on language server support - making it easier to use Oni with your favorite language.

Supporters

Shout out to our supporters this month!

  • @mhartington
  • @ayohan
  • @badosu
  • @adambard
  • @rrichardson
  • @sbuljac
  • @josemarluedke

Thank you for your support!