mirror of
https://github.com/qvacua/vimr.git
synced 2024-10-27 02:11:27 +03:00
Compare commits
8 Commits
9163dc96cc
...
47cc40f3a5
Author | SHA1 | Date | |
---|---|---|---|
|
47cc40f3a5 | ||
|
b915da2c06 | ||
|
861f9ff08d | ||
|
6f4d5ce3cf | ||
|
95431d4b97 | ||
|
6df888fbb0 | ||
|
add6933150 | ||
|
162119fc78 |
1
.github/workflows/build-universal-neovim.yml
vendored
1
.github/workflows/build-universal-neovim.yml
vendored
@ -76,4 +76,5 @@ jobs:
|
||||
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
|
||||
|
17
DEVELOP.md
17
DEVELOP.md
@ -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
|
||||
|
||||
@ -25,11 +31,14 @@ defaults write com.qvacua.VimR enable-debug-menu 1
|
||||
|
||||
### Neovim
|
||||
|
||||
* Commit and push the new release of 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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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.120406;
|
||||
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.120406;
|
||||
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.120406;
|
||||
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.120406;
|
||||
DEFINES_MODULE = YES;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||
IBC_MODULE = VimR;
|
||||
|
@ -1224,7 +1224,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.46.1</string>
|
||||
<string>SNAPSHOT-20240528.120406</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
@ -1241,7 +1241,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>20240426.143700</string>
|
||||
<string>20240528.120406</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.productivity</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
|
@ -15,10 +15,10 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.46.1</string>
|
||||
<string>SNAPSHOT-20240528.120406</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>20240426.143700</string>
|
||||
<string>20240528.120406</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
43
bin/neovim/bin/build_neovim_for_dev.sh
Executable file
43
bin/neovim/bin/build_neovim_for_dev.sh
Executable 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
|
||||
|
@ -1,7 +1,4 @@
|
||||
{
|
||||
"deploymentTarget": "12",
|
||||
"gettext": {
|
||||
"arm64BottleTag": "arm64_monterey",
|
||||
"x86_64BottleTag": "monterey"
|
||||
}
|
||||
"neovimRelease": "neovim-v0.10.0-20240527.232810"
|
||||
}
|
||||
|
@ -1,5 +1,9 @@
|
||||
# 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
|
||||
|
Loading…
Reference in New Issue
Block a user