43 lines
1.2 KiB
Bash
Executable file
43 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
# VimTeX inverse search callback wrapper
|
|
# This script is called by sioyek for inverse search
|
|
# It uses nvr to connect to the running Neovim instance
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
SERVERNAME_FILE="/tmp/vimtex-servername"
|
|
|
|
# VimTeX calls: nvim --headless -c "VimtexInverseSearch LINE 'FILE'"
|
|
# Parse the VimtexInverseSearch command to extract LINE and FILE
|
|
# Then use nvr --remote +LINE FILE which is more reliable
|
|
|
|
CMD=""
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--headless)
|
|
shift
|
|
;;
|
|
-c)
|
|
shift
|
|
CMD="$1"
|
|
shift
|
|
;;
|
|
*)
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ -n $CMD ]]; then
|
|
# Extract line number and file from: VimtexInverseSearch LINE 'FILE'
|
|
if [[ $CMD =~ VimtexInverseSearch\ ([0-9]+)\ \'(.+)\' ]]; then
|
|
LINE="${BASH_REMATCH[1]}"
|
|
FILE="${BASH_REMATCH[2]}"
|
|
|
|
if [[ -f $SERVERNAME_FILE ]]; then
|
|
SERVERNAME=$(cat "$SERVERNAME_FILE")
|
|
exec "$SCRIPT_DIR/path-shim" nvr --servername "$SERVERNAME" --remote-silent +"$LINE" "$FILE"
|
|
else
|
|
exec "$SCRIPT_DIR/path-shim" nvr --remote-silent +"$LINE" "$FILE"
|
|
fi
|
|
fi
|
|
fi
|