fixed hidden files display

This commit is contained in:
Jason Ross
2026-05-06 12:49:37 -05:00
parent 2193c210a8
commit dbca96dae0
Executable → Regular
+45 -31
View File
@@ -3,7 +3,7 @@
install_neovim.py
Install Neovim from the latest official GitHub binary release, then install
LazyVim and patch the Telescope config to show hidden files.
LazyVim and patch the snacks.nvim picker config to show hidden files.
Targets:
Windows 10/11 (x86_64), macOS (arm64 / x86_64), Linux (x86_64 / arm64).
@@ -559,56 +559,70 @@ def install_lazyvim(target: Target) -> Path:
# ---------------------------------------------------------------------------
# Telescope override
# snacks.nvim override
# ---------------------------------------------------------------------------
TELESCOPE_OVERRIDE_LUA = '''-- Generated by install_neovim.py
-- Show hidden files in Telescope's find_files and live_grep pickers.
-- (.git/ is still excluded; remove the --glob/!.git line below to include it.)
SNACKS_OVERRIDE_LUA = '''-- Generated by install_neovim.py
-- Override LazyVim's bundled snacks.nvim config to show hidden files
-- in the picker (files, grep) and the explorer.
--
-- Notes:
-- * `hidden = true` shows dotfiles (e.g. .env.example, .eslintrc).
-- * `ignored` is left at its default (false), so files matched by
-- .gitignore stay hidden. Flip to `true` if you want to see them.
-- * lazy.nvim deep-merges these `opts` into LazyVim's existing snacks
-- config; everything else (dashboard, notifier, indent, etc.) is
-- preserved untouched.
return {
{
"nvim-telescope/telescope.nvim",
"folke/snacks.nvim",
opts = {
defaults = {
vimgrep_arguments = {
"rg",
"--color=never",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
"--smart-case",
"--hidden",
"--glob=!.git/",
picker = {
hidden = true,
sources = {
files = {
hidden = true,
},
grep = {
hidden = true,
},
},
},
pickers = {
find_files = {
hidden = true,
},
explorer = {
hidden = true,
},
},
},
}
'''
# Marker used to detect files this script has previously written, so we can
# distinguish our own generated config from a user-authored file with the
# same name and avoid clobbering the latter.
GENERATED_MARKER = "-- Generated by install_neovim.py"
def configure_telescope_hidden(config_dir: Path) -> Path:
def configure_snacks_hidden(config_dir: Path) -> Path:
plugins_dir = config_dir / "lua" / "plugins"
plugins_dir.mkdir(parents=True, exist_ok=True)
out = plugins_dir / "telescope.lua"
out = plugins_dir / "snacks.lua"
if out.is_file():
try:
current = out.read_text(encoding="utf-8")
except OSError:
current = None
if current == TELESCOPE_OVERRIDE_LUA:
LOG.info("Telescope override already present at %s; no changes needed.",
if current == SNACKS_OVERRIDE_LUA:
LOG.info("Snacks override already present at %s; no changes needed.",
out)
return out
if current is not None and not current.startswith(GENERATED_MARKER):
LOG.warning("Existing %s is user-authored (no generated marker); "
"refusing to overwrite. Skipping snacks config.", out)
return out
LOG.info("Existing %s differs from generated content; overwriting.", out)
out.write_text(TELESCOPE_OVERRIDE_LUA, encoding="utf-8")
LOG.info("Wrote Telescope override to %s", out)
out.write_text(SNACKS_OVERRIDE_LUA, encoding="utf-8")
LOG.info("Wrote snacks.nvim override to %s", out)
return out
@@ -637,18 +651,18 @@ def print_followup(target: Target, bin_dir: Path, *, lazyvim_skipped: bool) -> N
if not lazyvim_skipped:
print()
print("On first launch, LazyVim will bootstrap lazy.nvim and install plugins.")
print("Telescope is configured to show hidden files (find_files & live_grep).")
print("snacks.picker is configured to show hidden files (find_files, grep, explorer).")
print()
def main() -> int:
parser = argparse.ArgumentParser(
description="Install Neovim + LazyVim with Telescope hidden-files enabled.",
description="Install Neovim + LazyVim with snacks.picker hidden-files enabled.",
)
parser.add_argument("-v", "--verbose", action="store_true",
help="Enable debug logging.")
parser.add_argument("--skip-lazyvim", action="store_true",
help="Install only the Neovim binary; skip LazyVim and Telescope steps.")
help="Install only the Neovim binary; skip LazyVim and snacks steps.")
# Internal: set by the script itself when relaunching with UAC elevation
# on Windows. Prevents an infinite elevation loop.
parser.add_argument("--elevated-relaunch", action="store_true",
@@ -745,7 +759,7 @@ def main() -> int:
try:
config_dir = install_lazyvim(target)
configure_telescope_hidden(config_dir)
configure_snacks_hidden(config_dir)
except InstallError as e:
LOG.error(str(e))
LOG.error("Neovim is installed but LazyVim setup failed. "