[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20240817070955.75717-1-ojeda@kernel.org>
Date: Sat, 17 Aug 2024 09:09:55 +0200
From: Miguel Ojeda <ojeda@...nel.org>
To: Miguel Ojeda <ojeda@...nel.org>,
Alex Gaynor <alex.gaynor@...il.com>,
Wedson Almeida Filho <wedsonaf@...il.com>
Cc: Boqun Feng <boqun.feng@...il.com>,
Gary Guo <gary@...yguo.net>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>,
Benno Lossin <benno.lossin@...ton.me>,
Andreas Hindborg <a.hindborg@...sung.com>,
Alice Ryhl <aliceryhl@...gle.com>,
rust-for-linux@...r.kernel.org,
linux-kernel@...r.kernel.org,
patches@...ts.linux.dev,
Ali Bektas <bektasali@...tonmail.com>,
Lukas Wirth <lukastw97@...il.com>
Subject: [RFC PATCH] rust: use the hidden variant of `rust-project.json`
Very soon after we requested it [1], `rust-analyzer` added support for
`.rust-project.json` [2], i.e. the hidden variant of `.rust-project.json`.
While this is only a (tiny) issue for kernel developers that use Rust
(i.e. so far a very small number compared to the total), the file is not
really something most kernel developers need to see, care or modify while
working, so it is not really needed to show it by default in listings.
It also follows the pattern of other files that are not directly related
to the project (unlike e.g. a `Kconfig` file).
Thus migrate to it.
Cc: Ali Bektas <bektasali@...tonmail.com>
Cc: Lukas Wirth <lukastw97@...il.com>
Link: https://github.com/rust-lang/rust-analyzer/issues/17816 [1]
Link: https://github.com/rust-lang/rust-analyzer/pull/17818 [2]
Signed-off-by: Miguel Ojeda <ojeda@...nel.org>
---
This is a patch for the future -- we need to wait until most Rust kernel
developers are using a new enough version of rust-analyzer. Thanks Ali
& Lukas!
.gitignore | 2 +-
Documentation/rust/quick-start.rst | 2 +-
Makefile | 8 ++++----
rust/Makefile | 2 +-
scripts/generate_rust_analyzer.py | 2 +-
scripts/remove-stale-files | 2 ++
6 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/.gitignore b/.gitignore
index 7902adf4f7f1..a79fc2a71c62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -176,4 +176,4 @@ x509.genkey
sphinx_*/
# Rust analyzer configuration
-/rust-project.json
+/.rust-project.json
diff --git a/Documentation/rust/quick-start.rst b/Documentation/rust/quick-start.rst
index d06a36106cd4..02f9dee6d236 100644
--- a/Documentation/rust/quick-start.rst
+++ b/Documentation/rust/quick-start.rst
@@ -259,7 +259,7 @@ The `rust-analyzer <https://rust-analyzer.github.io/>`_ language server can
be used with many editors to enable syntax highlighting, completion, go to
definition, and other features.
-``rust-analyzer`` needs a configuration file, ``rust-project.json``, which
+``rust-analyzer`` needs a configuration file, ``.rust-project.json``, which
can be generated by the ``rust-analyzer`` Make target::
make LLVM=1 rust-analyzer
diff --git a/Makefile b/Makefile
index 0a364e34f50b..9ef90963330c 100644
--- a/Makefile
+++ b/Makefile
@@ -1483,7 +1483,7 @@ endif # CONFIG_MODULES
CLEAN_FILES += vmlinux.symvers modules-only.symvers \
modules.builtin modules.builtin.modinfo modules.nsdeps \
compile_commands.json rust/test \
- rust-project.json .vmlinux.objs .vmlinux.export.c
+ .rust-project.json .vmlinux.objs .vmlinux.export.c
# Directories & files removed with 'make mrproper'
MRPROPER_FILES += include/config include/generated \
@@ -1621,7 +1621,7 @@ help:
@echo ' (requires kernel .config)'
@echo ' rusttest - Runs the Rust tests'
@echo ' (requires kernel .config; downloads external repos)'
- @echo ' rust-analyzer - Generate rust-project.json rust-analyzer support file'
+ @echo ' rust-analyzer - Generate .rust-project.json rust-analyzer support file'
@echo ' (requires kernel .config)'
@echo ' dir/file.[os] - Build specified target only'
@echo ' dir/file.rsi - Build macro expanded source, similar to C preprocessing.'
@@ -1809,7 +1809,7 @@ help:
@echo ' modules - default target, build the module(s)'
@echo ' modules_install - install the module'
@echo ' clean - remove generated files in module directory only'
- @echo ' rust-analyzer - generate rust-project.json rust-analyzer support file'
+ @echo ' rust-analyzer - generate .rust-project.json rust-analyzer support file'
@echo ''
ifndef CONFIG_MODULES
@@ -1958,7 +1958,7 @@ quiet_cmd_tags = GEN $@
tags TAGS cscope gtags: FORCE
$(call cmd,tags)
-# Generate rust-project.json (a file that describes the structure of non-Cargo
+# Generate .rust-project.json (a file that describes the structure of non-Cargo
# Rust projects) for rust-analyzer (an implementation of the Language Server
# Protocol).
PHONY += rust-analyzer
diff --git a/rust/Makefile b/rust/Makefile
index 1f10f92737f2..311675e97332 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -351,7 +351,7 @@ rust-analyzer:
--cfgs='core=$(core-cfgs)' --cfgs='alloc=$(alloc-cfgs)' \
$(realpath $(srctree)) $(realpath $(objtree)) \
$(RUST_LIB_SRC) $(KBUILD_EXTMOD) > \
- $(if $(KBUILD_EXTMOD),$(extmod_prefix),$(objtree))/rust-project.json
+ $(if $(KBUILD_EXTMOD),$(extmod_prefix),$(objtree))/.rust-project.json
redirect-intrinsics = \
__addsf3 __eqsf2 __gesf2 __lesf2 __ltsf2 __mulsf3 __nesf2 __unordsf2 \
diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py
index f270c7b0cf34..8b3a063b7c34 100755
--- a/scripts/generate_rust_analyzer.py
+++ b/scripts/generate_rust_analyzer.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0
-"""generate_rust_analyzer - Generates the `rust-project.json` file for `rust-analyzer`.
+"""generate_rust_analyzer - Generates the `.rust-project.json` file for `rust-analyzer`.
"""
import argparse
diff --git a/scripts/remove-stale-files b/scripts/remove-stale-files
index f38d26b78c2a..1e8c3278a133 100755
--- a/scripts/remove-stale-files
+++ b/scripts/remove-stale-files
@@ -21,3 +21,5 @@ set -e
# then will be really dead and removed from the code base entirely.
rm -f *.spec
+
+rm -f rust-project.json
base-commit: 7c626ce4bae1ac14f60076d00eafe71af30450ba
--
2.46.0
Powered by blists - more mailing lists