mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Add method to get first chunk in code completion string with punctuation
The client may or may not want to include the leading punctuation in a result e.g. in "?.foo()". Swift SVN r31013
This commit is contained in:
@@ -293,7 +293,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
StringRef getFirstTextChunk() const;
|
StringRef getFirstTextChunk() const;
|
||||||
Optional<unsigned> getFirstTextChunkIndex() const;
|
Optional<unsigned>
|
||||||
|
getFirstTextChunkIndex(bool includeLeadingPunctuation = false) const;
|
||||||
|
|
||||||
/// Concatenates all text chunks considered part of the name to \p OS.
|
/// Concatenates all text chunks considered part of the name to \p OS.
|
||||||
void getName(raw_ostream &OS) const;
|
void getName(raw_ostream &OS) const;
|
||||||
|
|||||||
@@ -539,7 +539,8 @@ MutableArrayRef<CodeCompletionResult *> CodeCompletionContext::takeResults() {
|
|||||||
return MutableArrayRef<CodeCompletionResult *>(Results, Count);
|
return MutableArrayRef<CodeCompletionResult *>(Results, Count);
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<unsigned> CodeCompletionString::getFirstTextChunkIndex() const {
|
Optional<unsigned> CodeCompletionString::getFirstTextChunkIndex(
|
||||||
|
bool includeLeadingPunctuation) const {
|
||||||
for (auto i : indices(getChunks())) {
|
for (auto i : indices(getChunks())) {
|
||||||
auto &C = getChunks()[i];
|
auto &C = getChunks()[i];
|
||||||
switch (C.getKind()) {
|
switch (C.getKind()) {
|
||||||
@@ -552,15 +553,18 @@ Optional<unsigned> CodeCompletionString::getFirstTextChunkIndex() const {
|
|||||||
case CodeCompletionString::Chunk::ChunkKind::DeclAttrParamKeyword:
|
case CodeCompletionString::Chunk::ChunkKind::DeclAttrParamKeyword:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::DeclAttrKeyword:
|
case CodeCompletionString::Chunk::ChunkKind::DeclAttrKeyword:
|
||||||
return i;
|
return i;
|
||||||
|
case CodeCompletionString::Chunk::ChunkKind::Dot:
|
||||||
|
case CodeCompletionString::Chunk::ChunkKind::ExclamationMark:
|
||||||
|
case CodeCompletionString::Chunk::ChunkKind::QuestionMark:
|
||||||
|
if (includeLeadingPunctuation)
|
||||||
|
return i;
|
||||||
|
continue;
|
||||||
case CodeCompletionString::Chunk::ChunkKind::RightParen:
|
case CodeCompletionString::Chunk::ChunkKind::RightParen:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::RightBracket:
|
case CodeCompletionString::Chunk::ChunkKind::RightBracket:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::LeftAngle:
|
case CodeCompletionString::Chunk::ChunkKind::LeftAngle:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::RightAngle:
|
case CodeCompletionString::Chunk::ChunkKind::RightAngle:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::Dot:
|
|
||||||
case CodeCompletionString::Chunk::ChunkKind::Ellipsis:
|
case CodeCompletionString::Chunk::ChunkKind::Ellipsis:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::Comma:
|
case CodeCompletionString::Chunk::ChunkKind::Comma:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::ExclamationMark:
|
|
||||||
case CodeCompletionString::Chunk::ChunkKind::QuestionMark:
|
|
||||||
case CodeCompletionString::Chunk::ChunkKind::Ampersand:
|
case CodeCompletionString::Chunk::ChunkKind::Ampersand:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::AccessControlKeyword:
|
case CodeCompletionString::Chunk::ChunkKind::AccessControlKeyword:
|
||||||
case CodeCompletionString::Chunk::ChunkKind::OverrideKeyword:
|
case CodeCompletionString::Chunk::ChunkKind::OverrideKeyword:
|
||||||
|
|||||||
Reference in New Issue
Block a user