1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
%{
from gyb_sourcekit_support.UIDs import UID_KEYS, UID_REQUESTS, UID_KINDS, KEY, REQUEST, KIND
# Ignore the following admonition it applies to the resulting .swift file only
}%
//// Automatically Generated From UIDs.swift.gyb.
//// Do Not Edit Directly! To regenerate run Utilities/generate-uids.py
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2024 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
%{
def variable_name(name):
if name == 'Operator':
return '`operator`'
word_index = 0
threshold_index = 1
for c in name:
if c.islower():
if word_index > threshold_index:
word_index -= 1
break
word_index += 1
if word_index == 0:
return name
return name[:word_index].lower() + name[word_index:]
# We should automatically generate these.
ADDITIONAL_KEYS = [
# Maintained from translateCodeCompletionOptions in SwiftCompletion.cpp#
KEY('SortByName', 'key.codecomplete.sort.byname'),
KEY('UseImportDepth', 'key.codecomplete.sort.useimportdepth'),
KEY('GroupOverloads', 'key.codecomplete.group.overloads'),
KEY('GroupStems', 'key.codecomplete.group.stems'),
KEY('FilterText', 'key.codecomplete.filtertext'),
KEY('RequestLimit', 'key.codecomplete.requestlimit'),
KEY('RequestStart', 'key.codecomplete.requeststart'),
KEY('HideUnderscores', 'key.codecomplete.hideunderscores'),
KEY('HideLowPriority', 'key.codecomplete.hidelowpriority'),
KEY('HideByName', 'key.codecomplete.hidebyname'),
KEY('IncludeExactMatch', 'key.codecomplete.includeexactmatch'),
KEY('AddInnerResults', 'key.codecomplete.addinnerresults'),
KEY('AddInnerOperators', 'key.codecomplete.addinneroperators'),
KEY('AddInitsToTopLevel', 'key.codecomplete.addinitstotoplevel'),
KEY('FuzzyMatching', 'key.codecomplete.fuzzymatching'),
KEY('TopNonLiteral', 'key.codecomplete.showtopnonliteralresults'),
KEY('ContextWeight', 'key.codecomplete.sort.contextweight'),
KEY('FuzzyWeight', 'key.codecomplete.sort.fuzzyweight'),
KEY('PopularityBonus', 'key.codecomplete.sort.popularitybonus'),
KEY('AnnotatedDescription', 'key.codecomplete.annotateddescription'),
KEY('IncludeObjectLiterals', 'key.codecomplete.includeobjectliterals'),
# Maintained from applyFormatOptions in SwiftEditor.cpp
KEY('UseTabs', 'key.editor.format.usetabs'),
KEY('IndentWidth', 'key.editor.format.indentwidth'),
KEY('TabWidth', 'key.editor.format.tabwidth'),
KEY('IndentSwitchCase', 'key.editor.format.indent_switch_case'),
]
# We should automatically generate these.
ADDITIONAL_VALUES = [
# Maintained from SwiftToSourceKitCompletionAdapter::handleResult in SwiftCompletion.cpp
KIND('CompletionKindKeyword', 'source.lang.swift.keyword'),
KIND('CompletionKindPattern', 'source.lang.swift.pattern'),
# Maintained from SwiftEditor.cpp
KIND('SemaDiagStage', 'source.diagnostic.stage.swift.sema'),
KIND('ParseDiagStage', 'source.diagnostic.stage.swift.parse'),
# Maintained from sourcekitd.cpp
KIND('SemaDisabledNotification', 'source.notification.sema_disabled'),
# Maintained from initializeService in Requests.cpp
KIND('SemaEnabledNotification', 'source.notification.sema_enabled'),
KIND('DocumentUpdateNotification', 'source.notification.editor.documentupdate'),
]
TYPES_AND_KEYS = [
('sourcekitd_api_keys', UID_KEYS + ADDITIONAL_KEYS),
('sourcekitd_api_requests', UID_REQUESTS),
('sourcekitd_api_values', UID_KINDS + ADDITIONAL_VALUES),
]
}%
import Csourcekitd
% for (struct_type, uids) in TYPES_AND_KEYS:
public struct ${struct_type} {
% for key in uids:
/// `${key.externalName}`
public let ${variable_name(key.internalName)}: sourcekitd_api_uid_t
% end
public init(api: sourcekitd_api_functions_t) {
% for key in uids:
${variable_name(key.internalName)} = api.uid_get_from_cstr("${key.externalName}")!
% end
}
}
% end
|