Commit graph

248 commits

Author SHA1 Message Date
Wu Shuwen ade2d9cda7
fix: synchronize bundle metadata version with 0.16.2 (#3566) 2026-09-05 14:08:20 +02:00
Morax d5f6810095
fix: render COLRv1 fonts on Linux (#3544)
Some checks failed
Lint Website / Lint website (push) Has been cancelled
Build and Publish Website / Build Website (push) Has been cancelled
Build and Publish Website / Generate Sitemap (push) Has been cancelled
Build and Publish Website / Publish Website (push) Has been cancelled
* fix: render COLRv1 fonts on Linux

---------

Co-authored-by: Alexsander Falcucci <alex.falcucci@gmail.com>
2026-09-05 00:52:17 +02:00
Alexsander Falcucci 0f18a8775f
bump skia-safe to 0.99.0 (#3560) 2026-09-01 12:29:13 +02:00
Kaylee Simmons b56abb653a
Improve cursor animations when jumping along cardinal directions. Animate cursor in the context of the window scroll delta keeping the cursor tighter to the window when the only movement is due to a scroll. Fix formatting error in Cargo.toml (#3543) 2026-08-08 20:01:36 -07:00
Alexsander Falcucci 9477f53a9c
macOS: add a custom native Editors window switcher (#3527)
we are now replacing the native tabs switcher into a Neovide-owned custom editor switcher.

Why?

The native tab overview was a temporary choice for this feature. 

editors should be about moving between Neovide editors without limitations,
but tying it to the system tabs overview made the behavior depend on whether native
tabs to be enabled, plus hacking to make it work properly not affecting separate
windows. 

users who prefers separate-window has been forced to merge
and detach windows just to present a choice to switcher windows easier which
made the single-window case fall back to pinned-window toggling. That
was a known gap.

now with a Neovide-owned custom switcher it gives both modes the
outcome.

NOTE: behavior-wise shouldn't change, besides the switcher appearing now even
for separate-window mode.
2026-07-18 01:25:19 +02:00
Alexsander Falcucci 090851dc76
bump skia-safe to 0.97.2 (#3510) 2026-06-02 16:46:39 +02:00
Alexsander Falcucci fdd02c24ff
bump skia-safe to 0.97 (#3501) 2026-05-04 16:35:14 +02:00
Alexsander Falcucci b5363a36b7
chore: update rust edition to 2024 (#3489) 2026-04-20 23:03:33 +02:00
Alexsander Falcucci d2d6ebd4ee
chore: prepare release 0.16.2 (#3478) 2026-04-14 21:16:16 +02:00
Alexsander Falcucci afb366be0c
docs: update tracy dependency instructions (#3472) 2026-04-13 22:50:52 +02:00
Alexsander Falcucci 084db1b141
chore: prepare release 0.16.1 (#3456) 2026-04-04 17:57:02 +02:00
Alexsander Falcucci e636e9091f
chore: prepare release 0.16.0 (#3434) 2026-03-30 19:39:35 +02:00
Alexsander Falcucci 20cf79ebb3
bump time = "0.3.47" (#3426) 2026-03-25 22:42:18 +01:00
Alexsander Falcucci aa8f82e02c
bump winit 0.30.13 (#3401) 2026-03-13 18:16:28 +01:00
Alexsander Falcucci bf6d3341c5
bump skia-safe to 0.93.1 (#3392) 2026-03-10 15:09:17 +01:00
Alexsander Falcucci 176d343dd9
feat: refactor for multi-window support and macos enhancements (#2872)
Introduce route ids and route targeted events so ui
commands and redraws can be scoped per window. this
adds route cores for pre window startup.

This refactors event flow so each OS window is a routed endpoint.
The EventPayload now carries EventTarget and NeovimHandler tracks a
route_id + per-route UI channels, keeping redraw and UI traffic
pinned to the right window.

Also the window lifecycle code now uses per-route renderer state for grid
sync, IME positioning and resize decisions so multiple windows do
not share mutable state.

note: macos native tabs and navigation now ride on the same route aware flow.
2026-02-27 07:06:30 +01:00
Alexsander Falcucci 2adfc48f77
improv: on macos use ppid heuristic for gui launch (#3376)
we now stop using $TERM to decide when to wrap neovim in a login shell,
so we check and treat ppid == 1 as a gui launch signal.
https://en.wikipedia.org/wiki/Launchd#Components
2026-02-25 23:28:50 +01:00
Alexsander Falcucci 5cc9adf226
bump skia-safe to 0.93.0 (#3369) 2026-02-17 02:18:23 +01:00
brian m. carlson 3d4b13d1b8
fix: properly detach from the terminal when forking (#3363)
If Neovide is run in forking mode with a terminal and the shell from
which it is invoked exits, Neovide is killed.  This can be easily seen
with `env -u TMUX tmux new 'neovide --fork; sleep 3'`.

To avoid that, we must detach from the terminal using the double-fork
technique, which calls `setsid` and closes the file descriptors after
the first fork.  Then, when the caller exits, we will not receive a
SIGHUP and will continue running.

This is implemented in the `fork` crate, which contains an analogue of
the `daemon` function found on Linux and the BSDs, so use that here to
detach properly.

Note that we still re-exec the process after the double fork because, at
least on macOS, by the time we've started the event loop, it is too late
to perform a fork because threads may have already been started and fork
destroys all threads but the calling one.  Moving the command-line and
config parsing easier would be complicated and starting a clean process
is the easiest way of making sure that we have a reasonable internal
state.  For this reason, we exit in this case if spawning the process
fails rather than continuing on.
2026-02-13 22:30:31 +01:00
Alexsander Falcucci da88921be7
bump skia-safe to 0.91.1 (#3354) 2026-02-07 19:20:30 +01:00
Alexsander Falcucci bb7cb1da7c
bumping tokio and related dep (#3351) 2026-02-07 00:39:17 +01:00
Alexsander Falcucci 05111ef8cb
feat: introduce macos matching pair highlight with find indicator (#3346) 2026-02-06 22:25:12 +01:00
Alexsander Falcucci 4165be85db
bump lru to 0.16.3 (#3348) 2026-02-04 21:48:12 +01:00
Alexsander Falcucci d090aa45d5
chore: bump tracy latest 0.27.0 (#3314) 2025-12-03 21:30:32 +01:00
Alexsander Falcucci 236be5ca9f
feat: introduce touchpad pressure preview actions for url/file/text (#2762) 2025-11-27 06:57:31 +01:00
Alexsander Falcucci f4239efb4e
chore: upgrade skia-safe to 0.90.0 (#3305) 2025-11-24 15:58:17 +01:00
fredizzimo 701526fbff
fix: always auto-detect the background color, support setting the window theme (#3207)
Co-authored-by: Alexsander Falcucci <alex.falcucci@gmail.com>
2025-11-21 06:41:24 +01:00
James Karefylakis ef3333ddf9
fix: macOS file-open focusing across active desktop (#3193)
Co-authored-by: Alexsander Falcucci <alex.falcucci@gmail.com>
2025-11-20 14:21:34 +01:00
Alexsander Falcucci 44c6b2257e
feat: improve stdin detection using rustix for broader compatibility (#3290) 2025-11-14 21:29:10 +01:00
fredizzimo 6178fb5af8
fix: Use the Neovim grid clustering rules (#3242)
* Caching shaper takes str

* Remove unneeded clone and equal

* Rename line to RenderedLine

* Pass a Line struct instead of Vec<LineFragment>

* Remove redundant redraw_line calls

* Pass the LineFragment text as ranges instead of String

The whole line is instead passed as a single string

* Pass cells range instead of start and width

* Remove duplicate code

* Calculate the word boundaries on the editor side

* Don't use unicode segmentation to assign text to cell

Instead use exactly what Neovim tells us

* Send the cluster sizes

* Position the glyphs according to the Neovim clustering rules

* Move the shaping log so that the text doesn't need to be generated twice

* Don't start new words with second part of double width cells

* Add some tests

* Fix clippy warnings

* Replace huge clusters by spaces to avoid overflow

* Replace test window macro by function

* Refactor the line related structs
2025-10-31 16:36:35 -07:00
fredizzimo 0ea39b7737
chore: update skia to 0.89.1 (#3257)
* Update skia to 0.89.1

Also:
    windows to 0.62.0
    windows-registry to 0.6.1

* Fix clippy warnings
2025-10-24 18:50:09 +03:00
fredizzimo e96216602f
Forward stdin if it's piped on Linux and MacOS (#3206) 2025-10-24 00:49:40 +03:00
fredizzimo 86c3639fcb
Clean up various ways of calling nvim (#3230)
Don't use deprecated functions, and use macros for cleaner syntax.
2025-10-02 19:46:59 +03:00
fredizzimo 0df980b6d4
Bump Neovide to 0.15.2, Neovide-derive to 0.1.4 (#3229) 2025-09-19 13:46:07 +03:00
fredizzimo b6f328f70d
Update Skia to 0.88.0 (#3228) 2025-09-19 03:03:12 +03:00
fredizzimo 873206c82c
chore: Upgrade and clean up dependencies (#3205)
* Upgrade winit to 0.30.12

* Upgrade to skia-safe 0.87

* Upgrade glamour to 0.18.0

* Upgrade more dependencies

* Upgrade xdg to 3.0.0

* Upgrade tracy-client-sys to 0.26.1

* Add comment about windows-sys requirement

* Remove unused dependencies

* Move platform specified dependences to where they belong

* Sort the dependencies
2025-09-05 02:02:21 +03:00
crupest 7dae9b33a3
upgrade deps winit, glutin, objc2. clean macos codes. (#3119)
* Upgrade 4 groups of dependency libraries
    * winit 0.30.9 -> 0.30.11
    * glutin 0.32.2 -> 0.32.3
    * copypasta 0.10.1 -> 0.10.2
    * objc2 0.5.2 -> 0.6.1, objc2-* 0.2.2 -> 0.3.1

* Codes affected by breaking changes of objc2 are all migrated accordingly.

* MacOS display link vsync codes are now merged into one single file. Redundant
  codes of unnecessary abstracting are removed.

* Some other codes of macOS part are also cleaned up.
2025-08-31 16:01:43 +03:00
fredizzimo 738c8a892b
fix: publishing to crates-io (#3171)
* Bump the neovide-derive version number

* Update crates-io publishing instructions
2025-07-20 13:39:38 +03:00
fredizzimo 0089f61453
Release 0.15.1 (#3169)
* Update dependencies

* Bump the version number

* Change unreleased yet tags

* Fix the version number in the lockfile
2025-07-20 12:19:32 +03:00
fredizzimo ef577ca58f
chore: Release 0.15.0 (#3075)
* Update dependencies

* Bump the version number
2025-04-02 19:20:48 +07:00
fredizzimo afc991a4e0
fix!: simplify and fix the launching of neovim (#3045)
* Remove pointless nvim_cmd_impl

The code was almost duplicate of create_platform_shell_command, but used
std::process::Command instead of tokio::process::Command

* Use nvim-rs handshake

* Simplify the shell launching

* Better error reporting when failing to launch nvim

Stderr output from Neovim are now logged for the whole session.

* Fix macOS

* Update nvim-rs
2025-03-23 18:53:23 +07:00
fredizzimo 43772c1bc0
chore: update swash to fix issues with some fonts (#3025) 2025-03-08 22:30:34 +07:00
fredizzimo 626ceccbc3
Bump the version number (#3022) 2025-02-23 11:21:59 +07:00
fredizzimo 9ff21b850e
fix: Update dependencies (#3005)
* Update dependencies

* Fix the tests

* Downgrade objc2

* Cleanup the skia dependency

* Downgrade the windows crate
2025-02-08 16:23:23 +07:00
Alexsander Falcucci e05d060a0d
chore: bump winit to 0.30.9 (#2964)
* chore: bump `winit` from `=0.30.7` to `=0.30.8`

- update the version of `winit` from `=0.30.7` to `=0.30.8`

* - update the winit version to `0.30.9`
2025-02-06 21:50:40 +01:00
Mads Marquart 16d5701aa1
chore: prepare for objc2 frameworks v0.3 (#2980) 2025-01-23 18:01:21 +01:00
Alexsander Falcucci c66d948eff
chore: remove the exclusion of files in the extra directory 2025-01-06 00:42:06 +01:00
Alexsander Falcucci eee177eec7
build: add exclusion for files in website/ directory (#2934) 2025-01-06 00:40:15 +01:00
Alexsander Falcucci 96d6bc41a6
chore: update neovide-derive to 0.1.1 (#2935) 2025-01-06 00:34:54 +01:00
Alexsander Falcucci 458af94b59
chore: release 0.14.0 (#2920)
Some checks failed
Lint Website / Lint website (push) Has been cancelled
Build and Publish Website / Build Website (push) Has been cancelled
Build and Publish Website / Generate Sitemap (push) Has been cancelled
Build and Publish Website / Publish Website (push) Has been cancelled
* chore: release 0.14.0

- update version numbers from `0.13.3` to `0.14.0` in `cargo.toml` and `info.plist`

* docs: update availability information for config files

- update availability information from `unreleased yet` to `available since 0.14.0` for the `config-file.md` file
- update availability information from `unreleased yet` to `available since 0.14.0` for the `configuration.md` file

* docs: update configuration information across files

- update the availability version information in the config-file.md and configuration.md files
2025-01-03 01:32:09 +02:00