Build rust-analyzer on FreeBSD.

The official FreeBSD package rust-analyzer crashes. I suspect this is because its built for rust stable which conflicts with the rust-nightly I have installed.
This commit is contained in:
Tom Alexander 2023-05-01 20:04:59 -04:00
parent 74fb8a3969
commit ad7fca700d
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
2 changed files with 42 additions and 1 deletions

View File

@ -2,10 +2,28 @@
(require 'util-tree-sitter) (require 'util-tree-sitter)
(defun locate-rust-analyzer () (defun locate-rust-analyzer ()
"Find rust-analyzer."
(let ((rust-analyzer-paths (list (locate-rust-analyzer-rustup) (locate-rust-analyzer-ansible-built))))
(let ((first-non-nill-path (seq-find (lambda (elt) elt) rust-analyzer-paths)))
first-non-nill-path
)
)
)
(defun locate-rust-analyzer-rustup ()
"Find rust-analyzer through rustup." "Find rust-analyzer through rustup."
(run-command-in-directory nil "rustup" "which" "rust-analyzer") (run-command-in-directory nil "rustup" "which" "rust-analyzer")
) )
(defun locate-rust-analyzer-ansible-built ()
"Find rust-analyzer where the ansible playbook built it."
(let ((rust-analyzer-path "/opt/rust-analyzer/target/release/rust-analyzer"))
(when (file-exists-p rust-analyzer-path)
rust-analyzer-path
)
)
)
(use-package rust-mode (use-package rust-mode
:mode "\\.rs\\'" :mode "\\.rs\\'"
:hook ( :hook (

View File

@ -2,5 +2,28 @@
package: package:
name: name:
- rust-nightly - rust-nightly
- rust-analyzer
state: present state: present
- name: Create directories
file:
name: "{{ item }}"
state: directory
mode: 0755
owner: root
group: wheel
loop:
- "/opt/rust-analyzer"
- name: Clone rust-analyzer Source
git:
repo: "https://github.com/rust-lang/rust-analyzer.git"
dest: /opt/rust-analyzer
version: "2023-05-01"
force: true
diff: false
- name: Build rust-analyzer
command: "cargo build --release"
args:
creates: "/opt/rust-analyzer/target/release/rust-analyzer"
chdir: /opt/rust-analyzer