Author: David Goldman Date: 2023-01-09T09:48:29-05:00 New Revision: 814c0bb31660b2441c9a9a6eeaafc2e33c416842
URL: https://github.com/llvm/llvm-project/commit/814c0bb31660b2441c9a9a6eeaafc2e33c416842 DIFF: https://github.com/llvm/llvm-project/commit/814c0bb31660b2441c9a9a6eeaafc2e33c416842.diff LOG: [clangd] Add flag to control #import include insertions This will be disabled by default, hopefully we can enable for the next major release. Differential Revision: https://reviews.llvm.org/D139446 Added: Modified: clang-tools-extra/clangd/CodeComplete.h clang-tools-extra/clangd/tool/ClangdMain.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/CodeComplete.h b/clang-tools-extra/clangd/CodeComplete.h index 44482d1047294..a7c1ae95dcbf4 100644 --- a/clang-tools-extra/clangd/CodeComplete.h +++ b/clang-tools-extra/clangd/CodeComplete.h @@ -70,6 +70,10 @@ struct CodeCompleteOptions { NeverInsert, } InsertIncludes = IncludeInsertion::IWYU; + /// Whether include insertions for Objective-C code should use #import instead + /// of #include. + bool ImportInsertions = false; + /// A visual indicator to prepend to the completion label to indicate whether /// completion result would trigger an #include insertion or not. struct IncludeInsertionIndicator { diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index 4cdfb1a8b4449..06cfdcc1ca233 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -264,6 +264,14 @@ opt<CodeCompleteOptions::IncludeInsertion> HeaderInsertion{ "Never insert #include directives as part of code completion")), }; +opt<bool> ImportInsertions{ + "import-insertions", + cat(Features), + desc("If header insertion is enabled, add #import directives when " + "accepting code completions or fixing includes in Objective-C code"), + init(CodeCompleteOptions().ImportInsertions), +}; + opt<bool> IncludeCleanerStdlib{ "include-cleaner-stdlib", cat(Features), @@ -913,6 +921,7 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var Opts.CodeComplete.BundleOverloads = CompletionStyle != Detailed; Opts.CodeComplete.ShowOrigins = ShowOrigins; Opts.CodeComplete.InsertIncludes = HeaderInsertion; + Opts.CodeComplete.ImportInsertions = ImportInsertions; if (!HeaderInsertionDecorators) { Opts.CodeComplete.IncludeIndicator.Insert.clear(); Opts.CodeComplete.IncludeIndicator.NoInsert.clear(); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits