Package Details: clangd-opt-git 19.r8943.gd8503a38b974-2

Git Clone URL: https://aur.archlinux.org/clangd-opt-git.git (read-only, click to copy)
Package Base: clangd-opt-git
Description: Trunk version of standalone clangd binary, with custom patches (look AUR page or PKGBUILD comments)
Upstream URL: https://llvm.org/
Licenses: Apache-2.0 WITH LLVM-exception
Conflicts: clangd-opt
Provides: clangd-opt
Replaces: clangd-opt
Submitter: sr.team
Maintainer: sr.team
Last Packager: sr.team
Votes: 2
Popularity: 1.35
First Submitted: 2024-03-15 10:25 (UTC)
Last Updated: 2024-04-20 15:02 (UTC)

Pinned Comments

sr.team commented on 2024-03-15 10:25 (UTC) (edited on 2024-03-20 22:08 (UTC) by sr.team)

This PKGBUILD build trunk version of clangd, and may apply some non-standard patches

Applying patches controls via enviroment variables (e.g. CLANGD_DEFAULT_PATCH_STATE=y makepkg -si):

Toggle all below patches

CLANGD_DEFAULT_PATCH_STATE:
- 'n' - disable all patches
- 'y' - apply all patches

Apply user patches from ~/.config/clangd. Patches must have extension *.patch

NOTE: This variable ignores the CLANGD_DEFAULT_PATCH_STATE variable
CLANGD_USER_PATCHES:
- 'n' - do not use user patches
- 'y' - apply user patches (default)

Show Doxygen comments in hover (D134130)

CLANGD_DOXYGEN:
- 'n' - do not apply this patch
- 'y' - apply this patch

Resolve forwarded parameters in hover (D130265)

CLANGD_RESOLVEFWDPARAMS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Implement textDocument/codeLens (D91930)

It's also required patched vscode-clangd extension - https://github.com/lightmelodies/vscode-clangd/commit/46266b4adb106b5080f5c771099c777806a16adc
CLANGD_CODELENS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Contextual postfix completions (D125224)

Demo: https://asciinema.org/a/rxyoicX44ya2jLDpdbNj3rVcC
CLANGD_POSTFIXCOMPLETION:
- 'n' - do not apply this patch
- 'y' - apply this patch

Extract Function: add hoisting support (D138499)

CLANGD_EXTRACTFUNC:
- 'n' - do not apply this patch
- 'y' - apply this patch

Add inlay hints for structure paddings

CLANGD_INLAYHINTSPADS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Add hex formats in size and offset fields on hover, when values more than 10

CLANGD_HOVERINHEX:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show mask for bit fields on hover

Demo: Screen 1, Screen 2
CLANGD_HOVERBITFIELDSMASK:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show offset of virtual methods

Limitations: supports only Itanium and MS abi
CLANGD_HOVERVIRTOFF:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show layout hover info everyhere

CLANGD_HOVERLAYOUTEVERYHERE:
- 'n' - do not apply this patch
- 'y' - apply this patch

Hide definition from hover info for functions and variables

CLANGD_HOVERNODEFS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Resolve the dependent type from its single instantiation (PR: 71279)

CLANGD_RESOLVEDEPTYPE:
- 'n' - do not apply this patch
- 'y' - apply this patch

Increase minimal limit for BlockEnd inlay-hints to 10 lines (default is 2)

This disabled show BlockEnd inlay-hints for small functions (less than 10 lines)
CLANGD_INLAYHINTSBLOCKEND:
- 'n' - do not apply this patch
- 'y' - apply this patch

Resolve includes in non-self-contained headers

Limitations: AST for source must be loaded before open incomplete header
CLANGD_RESOLVEINCHEADERS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Add way to remove files from CDB via LSP

No need in many cases. Useful only in multi project workspaces with patched client
CLANGD_LSPREMOVEFROMCDB:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show total record paddings in hover

CLANGD_HOVERRECORDPAD:
- 'n' - do not apply this patch
- 'y' - apply this patch

Allow specifying what headers are always included via "" or <> (PR: 67749)

CLANGD_CONFIG_INCLUDE_STYLE:
- 'n' - do not apply this patch
- 'y' - apply this patch

Implement simple folding of preprocessor branches (PR: 80592)

CLANGD_PREPROCESSOR_FOLDING:
- 'n' - do not apply this patch
- 'y' - apply this patch

Latest Comments

aliu commented on 2024-04-20 14:59 (UTC)

Oops, well thanks for the links. I don't think we should have every package depend on glibc and gcc-libs though; the link you provided also says

In some cases this is not necessary and may or may not be listed, for example glibc cannot be uninstalled as every system needs some C library

I don't think requiring every package to add gcc-libs and glibc in depends is a good idea (and I think we all agree on not needing duplication between makedepends and depends). Anyways, I agree that zlib can be added back.

MarsSeed commented on 2024-04-20 14:53 (UTC)

@aliu, your recommendation is based on outdated guidelines.

Current guidelines say:

The depends array should list all direct first level dependencies even when some are already declared transitively.

Also, namcap, Arch's own package analysis tool complains if a package has ELF files that link to any other ELF file but don't declare those in the depends array - even if the libraries in question are gcc-libs or glibc.

Also as per above guidelines, zlib is needed in depends, even if zstd also links to it. namcap verifies this, as it also lists zlib as a needed direct dependency after its analysis.

@sr.team, please kindly add back gcc-libs, glibc and zlib to depends array, and bump pkgrel to 2 to ensure every user gets the updated PKGBUILD. Thank you in advance!

aliu commented on 2024-04-20 14:42 (UTC) (edited on 2024-04-20 14:43 (UTC) by aliu)

gcc-libs and glibc are in base and zlib is required by zstd, so the only dependencies this needs are ncurses and zstd. Also, dependencies in depends can be removed from makedepends.

sr.team commented on 2024-03-15 15:11 (UTC)

@aliu Thanks for help with package renaming

aliu commented on 2024-03-15 14:45 (UTC) (edited on 2024-03-15 14:46 (UTC) by aliu)

Replaces should be added to the new package, not the old one. The variable should also be outside functions.

aliu commented on 2024-03-15 12:36 (UTC)

During conflict, usually the older package gets uninstalled. Since the old package is nothing, replaced would handle this well.

sr.team commented on 2024-03-15 12:22 (UTC)

@aliu currently this package not marked as conflict, to allow update from older package. Old package installs nothing currently. I've seen this solution with migrating to vlc-git from vlc-wayland-git

aliu commented on 2024-03-15 12:02 (UTC)

Maybe use a replaces? If nothing else, it'll still make this conflict with the old package.

sr.team commented on 2024-03-15 10:25 (UTC) (edited on 2024-03-20 22:08 (UTC) by sr.team)

This PKGBUILD build trunk version of clangd, and may apply some non-standard patches

Applying patches controls via enviroment variables (e.g. CLANGD_DEFAULT_PATCH_STATE=y makepkg -si):

Toggle all below patches

CLANGD_DEFAULT_PATCH_STATE:
- 'n' - disable all patches
- 'y' - apply all patches

Apply user patches from ~/.config/clangd. Patches must have extension *.patch

NOTE: This variable ignores the CLANGD_DEFAULT_PATCH_STATE variable
CLANGD_USER_PATCHES:
- 'n' - do not use user patches
- 'y' - apply user patches (default)

Show Doxygen comments in hover (D134130)

CLANGD_DOXYGEN:
- 'n' - do not apply this patch
- 'y' - apply this patch

Resolve forwarded parameters in hover (D130265)

CLANGD_RESOLVEFWDPARAMS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Implement textDocument/codeLens (D91930)

It's also required patched vscode-clangd extension - https://github.com/lightmelodies/vscode-clangd/commit/46266b4adb106b5080f5c771099c777806a16adc
CLANGD_CODELENS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Contextual postfix completions (D125224)

Demo: https://asciinema.org/a/rxyoicX44ya2jLDpdbNj3rVcC
CLANGD_POSTFIXCOMPLETION:
- 'n' - do not apply this patch
- 'y' - apply this patch

Extract Function: add hoisting support (D138499)

CLANGD_EXTRACTFUNC:
- 'n' - do not apply this patch
- 'y' - apply this patch

Add inlay hints for structure paddings

CLANGD_INLAYHINTSPADS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Add hex formats in size and offset fields on hover, when values more than 10

CLANGD_HOVERINHEX:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show mask for bit fields on hover

Demo: Screen 1, Screen 2
CLANGD_HOVERBITFIELDSMASK:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show offset of virtual methods

Limitations: supports only Itanium and MS abi
CLANGD_HOVERVIRTOFF:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show layout hover info everyhere

CLANGD_HOVERLAYOUTEVERYHERE:
- 'n' - do not apply this patch
- 'y' - apply this patch

Hide definition from hover info for functions and variables

CLANGD_HOVERNODEFS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Resolve the dependent type from its single instantiation (PR: 71279)

CLANGD_RESOLVEDEPTYPE:
- 'n' - do not apply this patch
- 'y' - apply this patch

Increase minimal limit for BlockEnd inlay-hints to 10 lines (default is 2)

This disabled show BlockEnd inlay-hints for small functions (less than 10 lines)
CLANGD_INLAYHINTSBLOCKEND:
- 'n' - do not apply this patch
- 'y' - apply this patch

Resolve includes in non-self-contained headers

Limitations: AST for source must be loaded before open incomplete header
CLANGD_RESOLVEINCHEADERS:
- 'n' - do not apply this patch
- 'y' - apply this patch

Add way to remove files from CDB via LSP

No need in many cases. Useful only in multi project workspaces with patched client
CLANGD_LSPREMOVEFROMCDB:
- 'n' - do not apply this patch
- 'y' - apply this patch

Show total record paddings in hover

CLANGD_HOVERRECORDPAD:
- 'n' - do not apply this patch
- 'y' - apply this patch

Allow specifying what headers are always included via "" or <> (PR: 67749)

CLANGD_CONFIG_INCLUDE_STYLE:
- 'n' - do not apply this patch
- 'y' - apply this patch

Implement simple folding of preprocessor branches (PR: 80592)

CLANGD_PREPROCESSOR_FOLDING:
- 'n' - do not apply this patch
- 'y' - apply this patch