1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-09-11 17:15:34 +03:00

Compare commits

...

47 Commits

Author SHA1 Message Date
Tae Won Ha
565ac195aa
Update appcast 2024-05-28 17:03:39 +09:00
Tae Won Ha
a8eb56dd4a
Bump version to v0.47.0-20240528.165939 2024-05-28 16:59:40 +09:00
Tae Won Ha
e9877482b8
Update appcast 2024-05-28 16:54:50 +09:00
Tae Won Ha
dc55179145
Bump version to snapshot/20240528.165029 2024-05-28 16:50:29 +09:00
Tae Won Ha
56c9a4a8f4
Use fresh venv 2024-05-28 16:50:02 +09:00
Tae Won Ha
dfe6b3d30c
Bump version to snapshot/20240528.145401 2024-05-28 14:54:02 +09:00
Tae Won Ha
9f72723543
Bump version to snapshot/20240528.135938 2024-05-28 13:59:38 +09:00
Tae Won Ha
131f7133a5
Sign also the treesitter libs 2024-05-28 13:58:54 +09:00
Tae Won Ha
0ba7d8a0e5
Bump version to snapshot/20240528.123921 2024-05-28 12:39:21 +09:00
Tae Won Ha
0b95059ad1
Forgot to un-comment 2024-05-28 12:38:45 +09:00
Tae Won Ha
44c0134fca
Swiftpm update 2024-05-28 12:36:21 +09:00
Tae Won Ha
23472d7e5c
Bump version to snapshot/20240528.123421 2024-05-28 12:34:21 +09:00
Tae Won Ha
7325960e56
Merge branch 'build-nvim-workflow'
Conflicts:
	VimR/VimR.xcodeproj/project.pbxproj
	VimR/VimR/Info.plist
	VimR/VimRTests/Info.plist
2024-05-28 12:32:15 +09:00
Tae Won Ha
47cc40f3a5
Update DEVELOP.md 2024-05-28 12:25:06 +09:00
Tae Won Ha
b915da2c06
Update release notes 2024-05-28 12:22:47 +09:00
Tae Won Ha
861f9ff08d
Generate sources for v0.10.0 2024-05-28 12:21:34 +09:00
Tae Won Ha
6f4d5ce3cf
Update DEVELOP.md 2024-05-28 12:13:16 +09:00
Tae Won Ha
95431d4b97
Adapt VimR building scripts 2024-05-28 12:07:28 +09:00
Tae Won Ha
6df888fbb0
Bump version to snapshot/20240528.120406 2024-05-28 12:04:07 +09:00
Tae Won Ha
add6933150
Adapt VimR building scripts 2024-05-28 12:02:53 +09:00
Tae Won Ha
162119fc78
Add release notes 2024-05-28 11:51:27 +09:00
Tae Won Ha
9163dc96cc
Tidy up 2024-05-27 23:52:53 +09:00
Tae Won Ha
f7a00ce478
Tidy up 2024-05-27 23:52:13 +09:00
Tae Won Ha
09cd3519e0
Remove debug statements 2024-05-27 23:27:55 +09:00
Tae Won Ha
2e72c661cf
Fix paths 2024-05-27 23:20:39 +09:00
Tae Won Ha
9a6fb5b754
Fix tar command 2024-05-27 23:15:57 +09:00
Tae Won Ha
f21e71c1d5
Add some debug messages 2024-05-27 23:08:42 +09:00
Tae Won Ha
9a73f4ad7c
Do not append arch 2024-05-27 23:01:15 +09:00
Tae Won Ha
dbd658fc5c
Turn off libintl for testing 2024-05-27 23:00:00 +09:00
Tae Won Ha
cd8e19edf6
Move downloaded artifacts to appropriate location 2024-05-27 22:47:24 +09:00
Tae Won Ha
11de4c720d
Update neovim to v0.10.0 2024-05-27 22:42:27 +09:00
Tae Won Ha
74d3a9565d
Fix typo 2024-05-27 22:18:49 +09:00
Tae Won Ha
d9cc1da85b
Rename artifact appropriately 2024-05-27 22:01:20 +09:00
Tae Won Ha
6445f5521d
Checkout submodules 2024-05-27 21:49:50 +09:00
Tae Won Ha
602161adc2
Make first step independent 2024-05-27 21:42:15 +09:00
Tae Won Ha
776eb9bd1f
Adapt tag pattern 2024-05-27 20:06:30 +09:00
Tae Won Ha
c95a81f299
Add workflow to build universal Neovim 2024-05-27 19:56:45 +09:00
Tae Won Ha
661937c397
Update appcast 2024-05-17 10:50:14 +02:00
Tae Won Ha
4faac5690e
Bump version to v0.46.2-20240517.102525 2024-05-17 10:25:25 +02:00
Tae Won Ha
bb7b6d98b5
Bump version to v0.46.2-20240517.102325 2024-05-17 10:23:25 +02:00
Tae Won Ha
7c8a0c9933
Bump version to snapshot/20240517.100542 2024-05-17 10:05:43 +02:00
Tae Won Ha
1bcba99c96
Update release notes 2024-05-17 10:04:55 +02:00
Tae Won Ha
495ec31f9e
Update release notes 2024-05-17 08:52:25 +02:00
Tae Won Ha
129173b04e
Merge pull request #1059 from s-daveb/master
Modify theming code: custom tab theme is now pulled from TablineSel highlight group
2024-05-17 08:50:41 +02:00
S David
949022ee88 Reverting accidental changes to TabSupport/../MainMenu.xib 2024-05-15 14:18:32 -04:00
S David
c1b42135b2 Use tabForeground color for selected tab close icon, and regular text foreground color for unselected tabs 2024-05-15 14:13:36 -04:00
S David
4666d1b4ac Modify VimR's themeing. Custom Tab color comes from TablineSel color group rather than Visual selection background color.
Fixes the issue where the everforest theme results in low-contrast tabs, by using color groups that were meant for tabs
2024-05-06 15:02:07 -04:00
27 changed files with 318 additions and 150 deletions

View File

@ -0,0 +1,80 @@
name: 'Universal Neovim'
on:
push:
tags:
# example: neovim-v0.10.0-20240601.102525
- neovim-v[0-9]+.[0-9]+.[0-9]+-*
jobs:
macos:
strategy:
fail-fast: false
matrix:
runner: [ macos-12, macos-14 ]
include:
- runner: macos-12
arch: x86_64
- runner: macos-14
arch: arm64
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
with:
# Perform a full checkout #13471
fetch-depth: 0
submodules: true
- name: Install dependencies
run: brew bundle
- name: Build neovim
run: clean=true ./bin/neovim/bin/build_neovim.sh
- uses: actions/upload-artifact@v4
with:
name: nvim-macos-${{ matrix.arch }}
path: Neovim/build/nvim-macos-${{ matrix.arch }}.tar.gz
retention-days: 1
publish:
needs: [macos]
runs-on: macos-14
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write
steps:
# Must perform checkout first, since it deletes the target directory
# before running, and would therefore delete the downloaded artifacts
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
- name: Install dependencies
run: brew bundle
- name: Set tag name env
run: |
TAG_NAME=${{ github.ref }}
echo "TAG_NAME=${TAG_NAME#refs/tags/}" >> $GITHUB_ENV
- name: Move downloaded artifacts
run: |
mv nvim-macos-x86_64/* .
mv nvim-macos-arm64/* .
rm -r nvim-macos-x86_64
rm -r nvim-macos-arm64
- name: Create universal Neovim
run: ./bin/neovim/bin/build_universal_neovim.sh
# Set as prerelease such that the latest VimR release is marked as the latest stable release
- name: Publish release
run: |
gh release create $TAG_NAME \
--prerelease \
--title "Universal ${TAG_NAME}" \
--notes "Neovim universal build with `libintl`" \
--target $GITHUB_SHA nvim-macos-x86_64.tar.gz nvim-macos-arm64.tar.gz nvim-macos-universal.tar.bz

View File

@ -1,12 +1,18 @@
## How to develop
To build Neovim for development, i.e., no universal binary, do the following
In most cases, you can use the pre-built universal Neovim build by running
```bash
clean=false for_dev=true ./bin/build_nvimserver.sh
clean=true for_dev=false ./bin/build_nvimserver.sh
```
You can set `clean=true` if you want to clean the existing build.
If you want to build Neovim locally, i.e., no universal build, you can use
```bash
clean=true for_dev=true ./bin/build_nvimserver.sh
```
This is used when generating source since we need some generated header files.
### Generating sources when upgrading Neovim
@ -23,6 +29,19 @@ defaults write com.qvacua.VimR enable-debug-menu 1
## How to release
### Neovim
* Update Neovim and generate sources.
* Commit and push.
* Tag and push with the following
```bash
version=neovim-vX.Y.Z-$(date "+%Y%m%d.%H%M%S"); git tag -a "${version}" -m "${version}"; git push origin "${version}"
```
* Github action will build universal binary + runtime and package it.
* Update the version of Neovim in `/bin/neovim/resources/buildInfo.json`
### VimR
* Set a new version of VimR via
```bash
is_snapshot=true ./bin/set_new_versions.sh # for snapshot or

2
Neovim

@ -1 +1 @@
Subproject commit 8744ee8783a8597f9fce4a573ae05aca2f412120
Subproject commit 27fb62988e922c2739035f477f93cc052a4fee1e

View File

@ -1,4 +1,4 @@
// Auto generated for nvim v0.9.4
// Auto generated for nvim v0.10.0
// See bin/generate_autocmds.py
enum NvimAutoCommandEvent: String {
@ -74,7 +74,10 @@ enum NvimAutoCommandEvent: String {
case insertleavepre
case lspattach
case lspdetach
case lsprequest
case lspnotify
case lsptokenupdate
case lspprogress
case menupopup
case modechanged
case optionset
@ -84,8 +87,10 @@ enum NvimAutoCommandEvent: String {
case recordingenter
case recordingleave
case remotereply
case safestate
case searchwrapped
case sessionloadpost
case sessionwritepost
case shellcmdpost
case shellfilterpost
case signal
@ -107,6 +112,7 @@ enum NvimAutoCommandEvent: String {
case termenter
case termleave
case termopen
case termrequest
case termresponse
case textchanged
case textchangedi

View File

@ -1,4 +1,4 @@
// Auto generated for nvim v0.9.4
// Auto generated for nvim v0.10.0
// See bin/generate_cursor_shape.py
public enum CursorModeShape: String {

View File

@ -126,7 +126,7 @@ extension NvimView {
let g:gui_vimr = 1
autocmd VimLeave * call rpcnotify(\(channel), 'autocommand', 'vimleave')
autocmd VimEnter * call rpcnotify(\(channel), 'autocommand', 'vimenter')
autocmd ColorScheme * call rpcnotify(\(channel), 'autocommand', 'colorscheme', get(nvim_get_hl(0, {'id': hlID('Normal')}), 'fg', -1), get(nvim_get_hl(0, {'id': hlID('Normal')}), 'bg', -1), get(nvim_get_hl(0, {'id': hlID('Visual')}), 'fg', -1), get(nvim_get_hl(0, {'id': hlID('Visual')}), 'bg', -1), get(nvim_get_hl(0, {'id': hlID('Directory')}), 'fg', -1))
autocmd ColorScheme * call rpcnotify(\(channel), 'autocommand', 'colorscheme', get(nvim_get_hl(0, {'id': hlID('Normal')}), 'fg', -1), get(nvim_get_hl(0, {'id': hlID('Normal')}), 'bg', -1), get(nvim_get_hl(0, {'id': hlID('Visual')}), 'fg', -1), get(nvim_get_hl(0, {'id': hlID('Visual')}), 'bg', -1), get(nvim_get_hl(0, {'id': hlID('Directory')}), 'fg', -1), get(nvim_get_hl(0, {'id': hlID('TablineSel')}), 'bg', -1), get(nvim_get_hl(0, {'id': hlID('TablineSel')}), 'fg', -1))
autocmd VimEnter * call rpcrequest(\(channel), 'vimenter')
""", opts: [:], errWhenBlocked: false)
// swiftformat:enable all

View File

@ -101,11 +101,14 @@ public extension NvimView {
public var visualBackground = NSColor.selectedContentBackgroundColor
public var directoryForeground = NSColor.textColor
public var tabForeground = NSColor.textColor
public var tabBackground = NSColor.textBackgroundColor
public init() {}
public init(_ values: [Int]) {
if values.count < 5 { preconditionFailure("We need 5 colors!") }
if values.count < 7 { preconditionFailure("We need 7 colors!") }
let color = ColorUtils.colorIgnoringAlpha
@ -118,12 +121,15 @@ public extension NvimView {
self.directoryForeground = values[4] < 0
? Theme.default.directoryForeground
: color(values[4])
self.tabBackground = values[5] < 0 ? Theme.default.background : color(values[5])
self.tabForeground = values[6] < 0 ? Theme.default.foreground : color(values[6])
}
public var description: String {
"NVV.Theme<" +
"fg: \(self.foreground.hex), bg: \(self.background.hex), " +
"visual-fg: \(self.visualForeground.hex), visual-bg: \(self.visualBackground.hex)" +
"tab-fg: \(self.tabForeground.hex), tab-bg: \(self.tabBackground.hex)" +
">"
}
}

View File

@ -511,7 +511,7 @@ extension NvimView {
private func colorSchemeChanged(_ value: MessagePackValue) {
guard let values = MessagePackUtils.array(
from: value, ofSize: 5, conversion: { $0.intValue }
from: value, ofSize: 7, conversion: { $0.intValue }
) else {
self.bridgeLogger.error("Could not convert \(value)")
return

View File

@ -107,8 +107,8 @@ extension Tab {
private func adjustColors(_ newIsSelected: Bool) {
if newIsSelected {
self.layer?.backgroundColor = self.theme.selectedBackgroundColor.cgColor
self.titleView.textColor = self.theme.selectedForegroundColor
self.layer?.backgroundColor = self.theme.tabBackgroundColor.cgColor
self.titleView.textColor = self.theme.tabForegroundColor
self.closeButton.image = self.theme.selectedCloseButtonImage
} else {
self.layer?.backgroundColor = self.theme.backgroundColor.cgColor

View File

@ -25,15 +25,17 @@ public struct Theme {
didSet {
self.selectedCloseButtonImage = Icon.close.asImage(
dimension: self.iconDimension.width,
color: self.selectedForegroundColor
color: self.tabForegroundColor
)
}
}
public var selectedBackgroundColor = NSColor.selectedTextBackgroundColor
public var tabSelectedIndicatorColor = NSColor.selectedTextColor
public var tabBackgroundColor = NSColor.selectedTextBackgroundColor
public var tabForegroundColor = NSColor.selectedTextColor
public var titleFont = NSFont.systemFont(ofSize: 11)
public var selectedTitleFont = NSFont.boldSystemFont(ofSize: 11)
@ -58,12 +60,12 @@ public struct Theme {
public init() {
self.closeButtonImage = Icon.close.asImage(
dimension: self.iconDimension.width,
color: self.foregroundColor
color: self.tabForegroundColor
)
self.selectedCloseButtonImage = Icon.close.asImage(
dimension: self.iconDimension.width,
color: self.selectedForegroundColor
color: self.tabForegroundColor
)
}
}

View File

@ -18,33 +18,6 @@
"version" : "2.2.1"
}
},
{
"identity" : "dictionarycoding",
"kind" : "remoteSourceControl",
"location" : "https://github.com/elegantchaos/DictionaryCoding",
"state" : {
"revision" : "ae19e456bd550fed8f341e5bae4318333c53a5b4",
"version" : "1.0.9"
}
},
{
"identity" : "down",
"kind" : "remoteSourceControl",
"location" : "https://github.com/johnxnguyen/Down",
"state" : {
"revision" : "f34b166be1f1db4aa8f573067e901d72f2a6be57",
"version" : "0.11.0"
}
},
{
"identity" : "fsevents",
"kind" : "remoteSourceControl",
"location" : "https://github.com/qvacua/FSEvents",
"state" : {
"branch" : "release-fseventstream",
"revision" : "90ed674df15b5e546a061052dad70228b3300fba"
}
},
{
"identity" : "material-icons",
"kind" : "remoteSourceControl",
@ -98,42 +71,6 @@
"revision" : "9dcaa4b333db437b0fbfaf453fad29069044a8b4",
"version" : "6.6.0"
}
},
{
"identity" : "shortcutrecorder",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Kentzo/ShortcutRecorder",
"state" : {
"revision" : "c86ce0f9be5353ba998966121c7631602a9a36f7",
"version" : "3.4.0"
}
},
{
"identity" : "sparkle",
"kind" : "remoteSourceControl",
"location" : "https://github.com/sparkle-project/Sparkle",
"state" : {
"revision" : "0a4caaf7a81eea2cece651ef4b17331fa0634dff",
"version" : "2.6.0"
}
},
{
"identity" : "swift-collections",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-collections.git",
"state" : {
"revision" : "94cf62b3ba8d4bed62680a282d4c25f9c63c2efb",
"version" : "1.1.0"
}
},
{
"identity" : "swifter",
"kind" : "remoteSourceControl",
"location" : "https://github.com/httpswift/swifter",
"state" : {
"revision" : "9483a5d459b45c3ffd059f7b55f9638e268632fd",
"version" : "1.5.0"
}
}
],
"version" : 2

View File

@ -1126,7 +1126,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.165939;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_MODULE_VERIFIER = YES;
@ -1192,7 +1192,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.165939;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_MODULE_VERIFIER = YES;
@ -1225,7 +1225,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.165939;
DEFINES_MODULE = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IBC_MODULE = VimR;
@ -1250,7 +1250,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.165939;
DEFINES_MODULE = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IBC_MODULE = VimR;

View File

@ -1224,7 +1224,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.46.1</string>
<string>0.47.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@ -1241,7 +1241,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>20240426.143700</string>
<string>20240528.165939</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.productivity</string>
<key>LSMinimumSystemVersion</key>

View File

@ -482,6 +482,9 @@ final class MainWindow: NSObject,
tabsTheme.selectedForegroundColor = self.theme.highlightForeground
tabsTheme.selectedBackgroundColor = self.theme.highlightBackground
tabsTheme.tabBackgroundColor = self.theme.tabBackground;
tabsTheme.tabForegroundColor = self.theme.tabForeground;
tabsTheme.tabSelectedIndicatorColor = self.theme.highlightForeground

View File

@ -45,6 +45,9 @@ struct Theme: CustomStringConvertible {
var highlightBackground = NSColor.selectedContentBackgroundColor
var directoryForeground = NSColor.textColor
var tabForeground = NSColor.selectedMenuItemTextColor
var tabBackground = NSColor.selectedContentBackgroundColor
var cssColor = NSColor(hex: "24292e")!
var cssBackgroundColor = NSColor.white
@ -62,7 +65,8 @@ struct Theme: CustomStringConvertible {
"Theme<" +
"fg: \(self.foreground.hex), bg: \(self.background.hex), " +
"hl-fg: \(self.highlightForeground.hex), hl-bg: \(self.highlightBackground.hex)" +
"dir-fg: \(self.directoryForeground.hex)" +
"dir-fg: \(self.directoryForeground.hex)," +
"tab-bg: \(self.tabBackground.hex), tab-fg: \(self.tabForeground.hex)" +
">"
}
@ -76,7 +80,10 @@ struct Theme: CustomStringConvertible {
self.highlightBackground = nvimTheme.visualBackground
self.directoryForeground = nvimTheme.directoryForeground
self.tabBackground = nvimTheme.tabBackground
self.tabForeground = nvimTheme.tabForeground
self.updateCssColors(additionalColorDict)
}

View File

@ -15,10 +15,10 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>0.46.1</string>
<string>0.47.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>20240426.143700</string>
<string>20240528.165939</string>
</dict>
</plist>

View File

@ -6,27 +6,22 @@
<description>Most recent changes with links to updates for VimR.</description>
<language>en</language>
<item>
<title>v0.46.1-20240426.143700</title>
<title>v0.47.0-20240528.165939</title>
<link>https://twitter.com/vimrefined</link>
<sparkle:version>20240426.143700</sparkle:version>
<sparkle:shortVersionString>v0.46.1</sparkle:shortVersionString>
<sparkle:version>20240528.165939</sparkle:version>
<sparkle:shortVersionString>v0.47.0</sparkle:shortVersionString>
<description><![CDATA[
<ul>
<li>Properly include <code>libintl</code> such that for example <code>:languge</code> works.</li>
<li>Bugfix: Filetype detection issue</li>
<li>Dependencies updates:</li>
<li>sparkle-project/Sparkle@2.6.0</li>
<li>Quick/Nimble@13.3.0</li>
<li>apple/swift-collections@1.1.0</li>
<li>Neovim 0.10.0 😀</li>
</ul>
]]></description>
<releaseNotesLink>
https://github.com/qvacua/vimr/releases/tag/v0.46.1-20240426.143700
https://github.com/qvacua/vimr/releases/tag/v0.47.0-20240528.165939
</releaseNotesLink>
<pubDate>2024-04-26T14:53:28.736633</pubDate>
<pubDate>2024-05-28T17:03:39.120989</pubDate>
<minimumSystemVersion>12.0</minimumSystemVersion>
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.46.1-20240426.143700/VimR-v0.46.1.tar.bz2"
sparkle:edSignature="tV3fPBFp22hdb9RCCCaFo2ntKpywB86sljPvUGl+tEPRfM3luDfuBbcVCoachcxXFWPHRpOR9/Bw5RVt2SEZCA==" length="17055735"
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.47.0-20240528.165939/VimR-v0.47.0.tar.bz2"
sparkle:edSignature="vPiDcu8cArjCrgbZIboNq6g8xwCK6zE8nS4l8vtlEiDPhC0+KzCd9ELuJ679B/xDiZerYMQfRcKv+h3IRGs9Dg==" length="19380666"
type="application/octet-stream"/>
</item>
</channel>

View File

@ -6,27 +6,22 @@
<description>Most recent changes with links to updates for VimR.</description>
<language>en</language>
<item>
<title>v0.46.1-20240426.143700</title>
<title>v0.47.0-20240528.165939</title>
<link>https://twitter.com/vimrefined</link>
<sparkle:version>20240426.143700</sparkle:version>
<sparkle:shortVersionString>v0.46.1</sparkle:shortVersionString>
<sparkle:version>20240528.165939</sparkle:version>
<sparkle:shortVersionString>v0.47.0</sparkle:shortVersionString>
<description><![CDATA[
<ul>
<li>Properly include <code>libintl</code> such that for example <code>:languge</code> works.</li>
<li>Bugfix: Filetype detection issue</li>
<li>Dependencies updates:</li>
<li>sparkle-project/Sparkle@2.6.0</li>
<li>Quick/Nimble@13.3.0</li>
<li>apple/swift-collections@1.1.0</li>
<li>Neovim 0.10.0 😀</li>
</ul>
]]></description>
<releaseNotesLink>
https://github.com/qvacua/vimr/releases/tag/v0.46.1-20240426.143700
https://github.com/qvacua/vimr/releases/tag/v0.47.0-20240528.165939
</releaseNotesLink>
<pubDate>2024-04-26T14:53:28.736633</pubDate>
<pubDate>2024-05-28T17:03:39.120989</pubDate>
<minimumSystemVersion>12.0</minimumSystemVersion>
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.46.1-20240426.143700/VimR-v0.46.1.tar.bz2"
sparkle:edSignature="tV3fPBFp22hdb9RCCCaFo2ntKpywB86sljPvUGl+tEPRfM3luDfuBbcVCoachcxXFWPHRpOR9/Bw5RVt2SEZCA==" length="17055735"
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.47.0-20240528.165939/VimR-v0.47.0.tar.bz2"
sparkle:edSignature="vPiDcu8cArjCrgbZIboNq6g8xwCK6zE8nS4l8vtlEiDPhC0+KzCd9ELuJ679B/xDiZerYMQfRcKv+h3IRGs9Dg==" length="19380666"
type="application/octet-stream"/>
</item>
</channel>

View File

@ -1,13 +1,19 @@
#!/bin/bash
set -Eeuo pipefail
declare -r -x clean=${clean:-false}
# This script prepares Neovim binary and the runtime files for building VimR.
# For most cases, you can just download the pre-built universal Neovim releases by running
# `clean=true for_dev=false ./bin/neovim/bin/download_neovim_releases.sh`
# If you want to build Neovim locally, use `for_dev=true`, then, the Neovim binary will be
# built for the current architecture only and using the simple `make` command.
declare -r -x clean=${clean:-true}
declare -r -x for_dev=${for_dev:-false}
main() {
pushd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null
resources_folder="./NvimView/Sources/NvimView/Resources"
local -r resources_folder="./NvimView/Sources/NvimView/Resources"
rm -rf "${resources_folder}/NvimServer"
rm -rf "${resources_folder}/runtime"
@ -17,24 +23,39 @@ main() {
rm -rf build
make distclean
popd >/dev/null
rm -rf "${resources_folder}/NvimServer"
rm -rf "${resources_folder}/runtime"
fi
if [[ "${for_dev}" == true ]]; then
pushd ./Neovim >/dev/null
mkdir -p ./build/install
make CMAKE_BUILD_TYPE=Release CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=./install"
make install
./bin/neovim/bin/build_neovim_for_dev.sh
pushd ./Neovim/build >/dev/null
local arch; arch="$(uname -m)"; readonly arch
tar -xf "nvim-macos-${arch}.tar.gz"
popd >/dev/null
cp ./Neovim/build/install/bin/nvim "${resources_folder}/NvimServer"
cp -r ./Neovim/build/install/share/nvim/runtime "${resources_folder}"
cp "./Neovim/build/nvim-macos-${arch}/bin/nvim" "${resources_folder}/NvimServer"
cp -r "./Neovim/build/nvim-macos-${arch}/share/nvim/runtime" "${resources_folder}"
else
./bin/neovim/bin/build_neovim.sh
pushd ./Neovim/build >/dev/null
tar -xf nvim-macos.tar.gz
local neovim_release; neovim_release=$(jq -r ".neovimRelease" ./bin/neovim/resources/buildInfo.json)
readonly neovim_release
pushd ./Neovim >/dev/null
mkdir -p build
pushd ./build >/dev/null
curl -LO "https://github.com/qvacua/vimr/releases/download/${neovim_release}/nvim-macos-universal.tar.bz"
tar -xf nvim-macos-universal.tar.bz
popd >/dev/null
popd >/dev/null
cp ./Neovim/build/nvim-macos/bin/nvim "${resources_folder}/NvimServer"
cp -r ./Neovim/build/nvim-macos/share/nvim/runtime "${resources_folder}"
cp ./Neovim/build/nvim-macos-universal/bin/nvim "${resources_folder}/NvimServer"
cp -r ./Neovim/build/nvim-macos-universal/share/nvim/runtime "${resources_folder}"
fi
# Copy VimR specific vim file to runtime/plugin folder

View File

@ -22,10 +22,8 @@ declare -r -x GH_REPO="qvacua/vimr"
prepare_bin() {
pushd ./bin >/dev/null
if ! pyenv which python | grep -q "com.qvacua.VimR.bin"; then
echo "com.qvacua.VimR.bin virtualenv not set up!"
exit 1;
fi
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
popd >/dev/null

View File

@ -24,7 +24,7 @@ main() {
nvim_version="v$major.$minor.$patch$prerelease"
echo "### Using nvim version: $nvim_version"
../bin/neovim/bin/build_neovim.sh
for_dev=true ../bin/build_nvimserver.sh
popd > /dev/null
pushd Neovim

View File

@ -1,28 +1,27 @@
#!/bin/bash
set -Eeuo pipefail
# This script builds Neovim with gettext for host's architecture, *no* universal build
# Produces /Neovim/build/neovim-macos-$arch.tar.gz
readonly clean=${clean:?"true or false"}
readonly NVIM_BUILD_TYPE=${NVIM_BUILD_TYPE:-"Release"}
readonly gettext_version="0.22.5"
readonly gettext_url="https://ftp.gnu.org/pub/gnu/gettext/gettext-${gettext_version}.tar.gz"
declare temp_dir; temp_dir="$(mktemp -d)"; readonly temp_dir
readonly gettext_install_dir="${temp_dir}/universal"
readonly gettext_install_dir="${temp_dir}/gettext"
build_gettext() {
local -r -x MACOSX_DEPLOYMENT_TARGET=$1
local -r -x MACOSX_DEPLOYMENT_TARGET="$1"
pushd "${temp_dir}" >/dev/null
curl -L "${gettext_url}" -o gettext.tar.gz
tar -xzf gettext.tar.gz
mkdir universal
mkdir gettext
pushd "./gettext-${gettext_version}" >/dev/null
./configure \
CC="gcc -arch x86_64 -arch arm64" \
CXX="g++ -arch x86_64 - arch arm64" \
CPP="gcc -E" \
CXXCPP="g++ -E" \
--prefix "${gettext_install_dir}" \
--disable-silent-rules \
--with-included-glib \
@ -43,9 +42,9 @@ build_gettext() {
}
build_neovim() {
# slightly modified version of /Neovim/.github/scripts/build_universal_macos.sh
# slightly modified version of Neovim's Github workflow for release
local -r -x MACOSX_DEPLOYMENT_TARGET=$1
local -r -x SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
local -x SDKROOT; SDKROOT=$(xcrun --sdk macosx --show-sdk-path); readonly SDKROOT
# Brew's gettext does not get sym-linked to PATH
export PATH="/opt/homebrew/opt/gettext/bin:/usr/local/opt/gettext/bin:${PATH}"
@ -53,7 +52,6 @@ build_neovim() {
cmake -S cmake.deps -B .deps -G Ninja \
-D CMAKE_BUILD_TYPE="${NVIM_BUILD_TYPE}" \
-D CMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-D CMAKE_OSX_ARCHITECTURES=arm64\;x86_64 \
-D CMAKE_FIND_FRAMEWORK=NEVER
cmake --build .deps
@ -62,8 +60,7 @@ build_neovim() {
cmake -B build -G Ninja \
-D CMAKE_BUILD_TYPE="${NVIM_BUILD_TYPE}" \
-D CMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-D CMAKE_OSX_ARCHITECTURES=arm64\;x86_64 \
-D CMAKE_FIND_FRAMEWORK=LAST \
-D CMAKE_FIND_FRAMEWORK=NEVER \
-D LIBINTL_INCLUDE_DIR="${gettext_install_dir}/include" \
-D LIBINTL_LIBRARY="${gettext_install_dir}/lib/libintl.a"
cmake --build build

View File

@ -0,0 +1,43 @@
#!/bin/bash
set -Eeuo pipefail
# This script builds Neovim with gettext for host's architecture, *no* universal build
# Produces /Neovim/build/neovim-macos-$arch.tar.gz
readonly clean=${clean:?"true or false"}
readonly NVIM_BUILD_TYPE=${NVIM_BUILD_TYPE:-"Release"}
build_neovim() {
# slightly modified version of Neovim's Github workflow for release
local -r -x MACOSX_DEPLOYMENT_TARGET=$1
local -x SDKROOT; SDKROOT=$(xcrun --sdk macosx --show-sdk-path); readonly SDKROOT
# Brew's gettext does not get sym-linked to PATH
export PATH="/opt/homebrew/opt/gettext/bin:/usr/local/opt/gettext/bin:${PATH}"
make CMAKE_BUILD_TYPE="${NVIM_BUILD_TYPE}"
cpack --config build/CPackConfig.cmake
}
main() {
# This script is located in /bin/neovim/bin and we have to go to /
pushd "$(dirname "${BASH_SOURCE[0]}")/../../../" >/dev/null
local deployment_target
deployment_target=$(jq -r .deploymentTarget ./bin/neovim/resources/buildInfo.json)
readonly deployment_target
pushd ./Neovim >/dev/null
echo "### Building neovim binary"
if [[ "${clean}" == true ]]; then
make distclean
fi
build_neovim "${deployment_target}"
popd >/dev/null
popd >/dev/null
}
main

View File

@ -0,0 +1,48 @@
#!/bin/bash
set -Eeuo pipefail
# This script creates a universal build, incl. Treesitter `so`s. The Treesitter
# libs are put under the `runtime` folder instead of under `lib`.
#
# It expects to find the following files in the workspace root:
# - nvim-macos-x86_64.tar.gz
# - nvim-macos-arm64.tar.gz
# It will produce the following in the workspace root:
# - nvim-macos-universal.tar.bz
#
# To be used in the context of Github actions
main() {
# This script is located in /bin/neovim/bin and we have to go to /
pushd "$(dirname "${BASH_SOURCE[0]}")/../../../" >/dev/null
tar -xf nvim-macos-x86_64.tar.gz
tar -xf nvim-macos-arm64.tar.gz
mkdir -p "nvim-macos-universal"
local universal_folder_path; universal_folder_path="$(pwd)/nvim-macos-universal";
readonly universal_folder_path
echo "${universal_folder_path}"
ls -la
mkdir -p "${universal_folder_path}/bin"
cp -r nvim-macos-arm64/share "${universal_folder_path}"
mkdir -p "${universal_folder_path}/share/nvim/runtime/parser"
lipo -create nvim-macos-arm64/bin/nvim nvim-macos-x86_64/bin/nvim \
-output "${universal_folder_path}/bin/nvim"
for f in nvim-macos-arm64/lib/nvim/parser/*; do
f="${f%/}"
local filename="${f##*/}"
lipo -create "nvim-macos-arm64/lib/nvim/parser/${filename}" \
"nvim-macos-x86_64/lib/nvim/parser/${filename}" \
-output "${universal_folder_path}/share/nvim/runtime/parser/${filename}"
done
tar -cjf nvim-macos-universal.tar.bz nvim-macos-universal
popd >/dev/null
}
main

View File

@ -1,7 +1,4 @@
{
"deploymentTarget": "12",
"gettext": {
"arm64BottleTag": "arm64_monterey",
"x86_64BottleTag": "monterey"
}
"neovimRelease": "neovim-v0.10.0-20240527.232810"
}

View File

@ -33,6 +33,12 @@ main () {
--entitlements="${entitlements_path}" \
"${vimr_app_path}/Contents/Resources/NvimView_NvimView.bundle/Contents/Resources/NvimServer"
for f in "${vimr_app_path}/Contents/Resources/NvimView_NvimView.bundle/Contents/Resources/runtime/parser"/*; do
codesign --verbose --force -s "${identity}" --timestamp --options=runtime \
--entitlements="${entitlements_path}" \
"${f}"
done
codesign --verbose --force -s "${identity}" --deep --timestamp --options=runtime \
"${vimr_app_path}"

View File

@ -1,5 +1,13 @@
# Next
* Neovim 0.10.0 😀
# v0.46.2-20240517.102525
* GH-1059: Improved coloring of custom tabs; thanks @s-daveb for the PR!
# v0.46.1-20240426.143700
* Properly include `libintl` such that for example `:languge` works.
* Bugfix: Filetype detection issue
* Dependencies updates: