Open OmerFlame opened 1 year ago
Any ETA on when this will be fixed? This is a pretty serious issue, my whole project is working on a specific tab size...
UPDATE: I can confirm that this only seems to happen in C/C++ source and header files. This behavior doesn't seem to happen on Rust/Python/JavaScript. This seems to me like clangd formats the code regardless of the tab size given in Zed's settings.
Same issue here. I even tried figuring out how to configure clangd but I think that if it's always using the LSP, it'd be good to have a way to configure clangd in the editor itself.
There does seem to be that possibility, but I'm unsure on how to configure formatting since the docs only cite initialization options.
Experiencing the same issue with Lua files here.
My editor config:
{
"buffer_font_size": 15,
"tab_size": 4,
"hard_tabs": true
}
Same in TypeScript/tsx files. My config
{ "base_keymap": "VSCode", "theme": "Rosé Pine", "buffer_font_size": 15, "autosave": "on_focus_change", "tab_size": 4 }
For the time being, consider setting format_on_save
to off
in your configuration file.
"format_on_save": "off"
same in .vue files
Same in .css files.
same in .vue files
for .vue files I put this configuration in .zed/settings.json (local settings), now it is working as expected
{ "languages": { "Vue.js": { "tab_size": 2 } } }
I really like the format on save but doing the same thing for me
"autosave": {
"after_delay": {
"milliseconds": 3000
}
},
"format_on_save": "on",
"hard_tabs": true,
"tab_size": 4,
"language_overrides": {
"TypeScript": {
"tab_size": 4,
"hard_tabs": true
},
"JSON": {
"tab_size": 4,
"hard_tabs": true
}
},
doing the language overrides didn't seem to help
C++ tab size : 4 and hard_tabs : true doesn't seems to be working
I'm using this config to fix it:
"language_overrides": {
"Vue.js": {
"tab_size": 2,
"hard_tabs": true
},
"TypeScript": {
"tab_size": 2,
"hard_tabs": true
},
"JSON": {
"tab_size": 2,
"hard_tabs": true
}
}
On 0.123.6 using language overrides does not fix the issue with C++:
"hard_tabs": true,
"tab_size": 4,
"format_on_save": "on",
"language_overrides": {
"C++": {
"hard_tabs": true,
"tab_size": 4
}
}
Can confirm that this persists for C++ even if you put language overrides & tab-size related settings. Other languages are fine when you fix your config with override.
@OmerFlame It seems formatting is handled by the clangd
language server. You can instruct it to use 4 spaces by creating a .clang-format
file in the same directory containing:
IndentWidth: 4
(see https://clang.llvm.org/docs/ClangFormatStyleOptions.html)
This is a workaround however; it would be nice to see support for configuring the language server formatter integrated into Zed itself.
For Rust, it was definitely rustfmt
overriding the editor settings. Created $HOME/.rustfmt.toml
, added a line
tab_spaces = 2
And that fixed it!
I really like the format on save but doing the same thing for me
"autosave": { "after_delay": { "milliseconds": 3000 } }, "format_on_save": "on", "hard_tabs": true, "tab_size": 4, "language_overrides": { "TypeScript": { "tab_size": 4, "hard_tabs": true }, "JSON": { "tab_size": 4, "hard_tabs": true } },
doing the language overrides didn't seem to help
OMG this is super useful, thank you!
Check for existing issues
Describe the bug / provide steps to reproduce it
When saving, Zed just doesn't respect the tab size that was set in the settings. (Settings and demo of the issue provided in the attached screen recording)
Environment
Zed: v0.79.1 (stable) OS: macOS 13.3.0 Memory: 16 GiB Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature
https://user-images.githubusercontent.com/17903236/229575342-cce95708-0c86-44a3-87ef-db93bbe93131.mov
If applicable, attach your
~/Library/Logs/Zed/Zed.log
file to this issue.If you only need the most recent lines, you can run the
zed: open log
command palette action to see the last 1000.log.txt