![](https://aussie.zone/pictrs/image/434e4285-78c6-4e18-9ecd-496eb07b7c13.jpeg)
![](https://lemmy.ml/pictrs/image/q98XK4sKtw.png)
I’ve worked it out, thanks for the responses, maybe I didn’t word the question properly or something, but here’s what I did for anyone interested in the future:
You only need to do this once for every machine you want to work on.
Add the llvm freedesktop sdk extensions to get a clangd executable to your flatpak manifest:
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.llvm18"
],
Install these extensions:
- Native Debug
- Flatpak
- Meson Build
- clangd (optional)
Run the Flatpak: Build
command in the command palette (Ctrl+Shift+P
) this might take a minute. Make sure you have the required sdks installed (see the manifest for details).
There should now be two folders: .flatpak
and _build
. There should also be a script generated at .flatpak/meson.sh
. Run:
python gen-flatpak-scripts.py
This will generate .flatpak/gdb.sh
and .flatpak/clangd.sh
. If you want to use the clangd vscode extension extension add this to .vscode/settings.json
:
"clangd.path": "./.flatpak/clangd.sh"
Now run the clangd: Restart language server
command in the command palette (Ctrl+Shift+P
) and you should be good to go!
gen-flatpak-scripts.py
:
# Simple script to generate scripts to make life easy when using flatpak with vscode
import subprocess;
def gen_script(outfile, exec):
with open(".flatpak/meson.sh", "rt") as fin:
with open(outfile, "wt") as fout:
for line in fin:
fout.write(line.replace("/usr/bin/meson", exec))
subprocess.run(["chmod", "+x", outfile])
# GDB for debugging
gen_script(".flatpak/gdb.sh", "/usr/bin/gdb")
# clangd for suggestions
gen_script(".flatpak/clangd.sh", "/usr/lib/sdk/llvm18/bin/clangd")
I was asking about getting the clangd extension to work when developing an application against the freedesktop sdk as a flatpak. I’ve worked it out now, thanks for your interest