diff --git a/crates/languages/src/cpp/config.toml b/crates/languages/src/cpp/config.toml index e78bc8ea6c73a754d06780e85d8cd21801f18fb5..6aba8727f3b4250e5e44fac24a6519ede86fb5eb 100644 --- a/crates/languages/src/cpp/config.toml +++ b/crates/languages/src/cpp/config.toml @@ -1,6 +1,6 @@ name = "C++" grammar = "cpp" -path_suffixes = ["cc", "hh", "cpp", "h", "hpp", "cxx", "hxx", "c++", "ipp", "inl", "cu", "cuh"] +path_suffixes = ["cc", "hh", "cpp", "h", "hpp", "cxx", "hxx", "c++", "ipp", "inl", "cu", "cuh", "C", "H"] line_comments = ["// ", "/// ", "//! "] autoclose_before = ";:.,=}])>" brackets = [ diff --git a/docs/src/languages/c.md b/docs/src/languages/c.md index ce4a27a4126e3a4fe6c3de3cb26963529864019f..81e89baa5c3b3917d58a6ddbb60d052f25916c42 100644 --- a/docs/src/languages/c.md +++ b/docs/src/languages/c.md @@ -14,6 +14,16 @@ CompileFlags: Add: [-xc] ``` +By default clang and gcc by will recognize `*.C` and `*.H` (uppercase extensions) as C++ and not C and so Zed too follows this convention. If you are working with a C-only project (perhaps one with legacy uppercase pathing like `FILENAME.C`) you can override this behavior by adding this to your settings: + +```json +{ + "file_types": { + "C": ["C", "H"] + } +} +``` + ## Formatting By default Zed will use the `clangd` language server for formatting C code. The Clangd is the same as the `clang-format` CLI tool. To configure this you can add a `.clang-format` file. For example: