Skip to content

Commit

Permalink
Add workaround to fix clangd not being able to perform cross-file ren…
Browse files Browse the repository at this point in the history
…ames on Windows
  • Loading branch information
LagoLunatic committed Nov 20, 2024
1 parent 3bdcd42 commit e86613a
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion tools/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -1672,7 +1672,15 @@ def try_replace(flag: str) -> bool:

def default_format(o):
if isinstance(o, Path):
return o.resolve().as_posix()
path_str = o.resolve().as_posix()
if os.name == "nt":
# clangd has an issue dealing with case-insensitive paths on Windows.
# If the drive letter of a path is a capital letter, clangd will fail to handle
# cross-file rename operations, so we have to convert the first character of the
# path to lowercase as a workaround.
# https://github.com/clangd/clangd/issues/108
path_str = path_str[0].lower() + path_str[1:]
return path_str
return str(o)

json.dump(clangd_config, w, indent=2, default=default_format)
Expand Down

0 comments on commit e86613a

Please sign in to comment.