Skip to content

Commit 071a8e1

Browse files
committed
Add more supported C++ file types
1 parent ea55b3b commit 071a8e1

File tree

2 files changed

+16
-30
lines changed

2 files changed

+16
-30
lines changed

Sources/SourceKitBazelBSP/RequestHandlers/BuildTargets/SupportedExtension.swift

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,36 @@ private let logger = makeFileLevelBSPLogger()
2626
// Contains data about all the file types the BSP knows how to parse.
2727
// See also: DependencyRuleType.swift, TopLevelRuleType.swift
2828
enum SupportedExtension: String, CaseIterable {
29+
case cCaps = "C"
2930
case c
3031
case cc
3132
case cpp
3233
case cxx
34+
case inc
35+
case ipp
36+
case hCaps = "H"
3337
case h
38+
case hh
3439
case hpp
3540
case m
3641
case mm
3742
case swift
3843

3944
var kind: SourceKitSourceItemKind {
4045
switch self {
41-
case .h, .hpp: return .header
42-
case .c, .cc, .cpp, .cxx: return .source
46+
case .hCaps, .h, .hh, .hpp, .inc, .ipp: return .header
47+
case .cCaps, .c, .cc, .cpp, .cxx: return .source
4348
case .m, .mm: return .source
4449
case .swift: return .source
4550
}
4651
}
4752

48-
// Source: https://github.com/swiftlang/sourcekit-lsp/blob/7495f5532fdb17184d69518f46a207e596b26c64/Sources/LanguageServerProtocolExtensions/Language%2BInference.swift#L33
53+
// Source for .h == Obj-C++: https://github.com/swiftlang/sourcekit-lsp/blob/7495f5532fdb17184d69518f46a207e596b26c64/Sources/LanguageServerProtocolExtensions/Language%2BInference.swift#L33
54+
// Technically not 100% correct, but does the job for what it needs to do.
4955
var language: Language {
5056
switch self {
5157
case .c: return .c
52-
case .cpp, .cc, .cxx, .hpp: return .cpp
58+
case .cCaps, .cpp, .cc, .cxx, .hCaps, .hh, .hpp, .inc, .ipp: return .cpp
5359
case .m: return .objective_c
5460
case .mm, .h: return .objective_cpp
5561
case .swift: return .swift

Sources/SourceKitBazelBSP/RequestHandlers/BuildTargets/TopLevelRuleType.swift

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -58,33 +58,13 @@ public enum TopLevelRuleType: String, CaseIterable, ExpressibleByArgument, Senda
5858
/// This is used to find the correct variant of each library we need to parse.
5959
var mmnemonic: String {
6060
switch self {
61-
case .iosApplication: return "BundleTreeApp"
62-
case .iosAppClip: return "BundleTreeApp"
63-
case .iosExtension: return "BundleTreeApp"
64-
case .iosUnitTest: return "BundleTreeApp"
65-
case .iosUiTest: return "BundleTreeApp"
66-
case .iosBuildTest: return "TestRunner"
67-
case .watchosApplication: return "BundleTreeApp"
68-
case .watchosExtension: return "BundleTreeApp"
69-
case .watchosUnitTest: return "BundleTreeApp"
70-
case .watchosUiTest: return "BundleTreeApp"
71-
case .watchosBuildTest: return "TestRunner"
72-
case .macosApplication: return "BundleTreeApp"
73-
case .macosExtension: return "BundleTreeApp"
61+
case .iosApplication, .iosAppClip, .iosExtension, .iosUnitTest, .iosUiTest, .watchosApplication,
62+
.watchosExtension, .watchosUnitTest, .watchosUiTest, .macosApplication, .macosExtension, .macosUnitTest,
63+
.macosUiTest, .tvosApplication, .tvosExtension, .tvosUnitTest, .tvosUiTest, .visionosApplication,
64+
.visionosExtension, .visionosUnitTest, .visionosUiTest:
65+
return "BundleTreeApp"
66+
case .iosBuildTest, .watchosBuildTest, .macosBuildTest, .tvosBuildTest, .visionosBuildTest: return "TestRunner"
7467
case .macosCommandLineApplication: return "SignBinary"
75-
case .macosUnitTest: return "BundleTreeApp"
76-
case .macosUiTest: return "BundleTreeApp"
77-
case .macosBuildTest: return "TestRunner"
78-
case .tvosApplication: return "BundleTreeApp"
79-
case .tvosExtension: return "BundleTreeApp"
80-
case .tvosUnitTest: return "BundleTreeApp"
81-
case .tvosUiTest: return "BundleTreeApp"
82-
case .tvosBuildTest: return "TestRunner"
83-
case .visionosApplication: return "BundleTreeApp"
84-
case .visionosExtension: return "BundleTreeApp"
85-
case .visionosUnitTest: return "BundleTreeApp"
86-
case .visionosUiTest: return "BundleTreeApp"
87-
case .visionosBuildTest: return "TestRunner"
8868
}
8969
}
9070

0 commit comments

Comments
 (0)