mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[CodeCompletion] Introduce "Flair" in code completion
To describe fine grained priorities. Introduce 'CodeCompletionFlair' that is a set of more descriptive flags for prioritizing completion items. This aims to replace ' SemanticContextKind::ExpressionSpecific' which was a "catch all" prioritization flag.
This commit is contained in:
@@ -26,11 +26,11 @@ func testGlobalFunc() {
|
||||
{ 1 } #^GLOBALFUNC_SAMELINE^#
|
||||
#^GLOBALFUNC_NEWLINE^#
|
||||
// GLOBALFUNC_SAMELINE: Begin completions, 1 items
|
||||
// GLOBALFUNC_SAMELINE-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// GLOBALFUNC_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// GLOBALFUNC_SAMELINE: End completions
|
||||
|
||||
// GLOBALFUNC_NEWLINE: Begin completions
|
||||
// FIXME-GLOBALFUNC_NEWLINE-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-GLOBALFUNC_NEWLINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// GLOBALFUNC_NEWLINE: End completions
|
||||
|
||||
globalFunc1()
|
||||
@@ -55,14 +55,14 @@ func testMethod(value: MyStruct) {
|
||||
} #^METHOD_SAMELINE^#
|
||||
#^METHOD_NEWLINE^#
|
||||
// METHOD_SAMELINE: Begin completions, 4 items
|
||||
// METHOD_SAMELINE-DAG: Pattern/ExprSpecific: {#fn2: (() -> String)? {|}#}[#(() -> String)?#];
|
||||
// METHOD_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: (() -> String)? {|}#}[#(() -> String)?#];
|
||||
// METHOD_SAMELINE-DAG: Decl[InstanceMethod]/CurrNominal: .enumFunc()[#Void#];
|
||||
// METHOD_SAMELINE-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]/IsSystem: [' ']+ {#SimpleEnum#}[#SimpleEnum#];
|
||||
// METHOD_SAMELINE-DAG: Keyword[self]/CurrNominal: .self[#SimpleEnum#];
|
||||
// METHOD_SAMELINE: End completions
|
||||
|
||||
// METHOD_NEWLINE: Begin completions
|
||||
// FIXME-METHOD_NEWLINE-DAG: Pattern/ExprSpecific: {#fn2: (() -> String)? {|}#}[#(() -> String)?#];
|
||||
// FIXME-METHOD_NEWLINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: (() -> String)? {|}#}[#(() -> String)?#];
|
||||
// METHOD_NEWLINE-DAG: Keyword[class]/None: class;
|
||||
// METHOD_NEWLINE-DAG: Keyword[if]/None: if;
|
||||
// METHOD_NEWLINE-DAG: Keyword[try]/None: try;
|
||||
@@ -86,15 +86,15 @@ func testOverloadedInit() {
|
||||
#^INIT_OVERLOADED_NEWLINE^#
|
||||
|
||||
// INIT_OVERLOADED_SAMELINE: Begin completions, 4 items
|
||||
// INIT_OVERLOADED_SAMELINE-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OVERLOADED_SAMELINE-DAG: Pattern/ExprSpecific: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OVERLOADED_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OVERLOADED_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OVERLOADED_SAMELINE-DAG: Decl[InstanceMethod]/CurrNominal: .testStructMethod()[#Void#];
|
||||
// INIT_OVERLOADED_SAMELINE-DAG: Keyword[self]/CurrNominal: .self[#TestStruct#];
|
||||
// INIT_OVERLOADED_SAMELINE: End completions
|
||||
|
||||
// INIT_OVERLOADED_NEWLINE: Begin completions
|
||||
// FIXME-INIT_OVERLOADED_NEWLINE-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_OVERLOADED_NEWLINE-DAG: Pattern/ExprSpecific: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_OVERLOADED_NEWLINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_OVERLOADED_NEWLINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OVERLOADED_NEWLINE-DAG: Keyword[class]/None: class;
|
||||
// INIT_OVERLOADED_NEWLINE-DAG: Keyword[if]/None: if;
|
||||
// INIT_OVERLOADED_NEWLINE-DAG: Keyword[try]/None: try;
|
||||
@@ -113,15 +113,15 @@ func testOptionalInit() {
|
||||
#^INIT_OPTIONAL_NEWLINE^#
|
||||
|
||||
// INIT_OPTIONAL_SAMELINE: Begin completions, 4 items
|
||||
// INIT_OPTIONAL_SAMELINE-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OPTIONAL_SAMELINE-DAG: Pattern/ExprSpecific: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OPTIONAL_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OPTIONAL_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OPTIONAL_SAMELINE-DAG: Decl[InstanceMethod]/CurrNominal: .testStructMethod()[#Void#];
|
||||
// INIT_OPTIONAL_SAMELINE-DAG: Keyword[self]/CurrNominal: .self[#TestStruct2#];
|
||||
// INIT_OPTIONAL_SAMELINE: End completions
|
||||
|
||||
// INIT_OPTIONAL_NEWLINE: Begin completions
|
||||
// FIXME-INIT_OPTIONAL_NEWLINE-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_OPTIONAL_NEWLINE-DAG: Pattern/ExprSpecific: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_OPTIONAL_NEWLINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_OPTIONAL_NEWLINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_OPTIONAL_NEWLINE-DAG: Keyword[class]/None: class;
|
||||
// INIT_OPTIONAL_NEWLINE-DAG: Keyword[if]/None: if;
|
||||
// INIT_OPTIONAL_NEWLINE-DAG: Keyword[try]/None: try;
|
||||
@@ -141,11 +141,11 @@ func testOptionalInit() {
|
||||
#^INIT_REQUIRED_NEWLINE_1^#
|
||||
|
||||
// INIT_REQUIRED_SAMELINE_1: Begin completions, 1 items
|
||||
// INIT_REQUIRED_SAMELINE_1-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INIT_REQUIRED_SAMELINE_1-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INIT_REQUIRED_SAMELINE_1: End completions
|
||||
|
||||
// INIT_REQUIRED_NEWLINE_1: Begin completions
|
||||
// FIXME-INIT_REQUIRED_NEWLINE_1-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_REQUIRED_NEWLINE_1-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INIT_REQUIRED_NEWLINE_1: End completions
|
||||
|
||||
// missing 'fn3'.
|
||||
@@ -157,11 +157,11 @@ func testOptionalInit() {
|
||||
#^INIT_REQUIRED_NEWLINE_2^#
|
||||
|
||||
// INIT_REQUIRED_SAMELINE_2: Begin completions, 1 items
|
||||
// INIT_REQUIRED_SAMELINE_2-DAG: Pattern/ExprSpecific: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_REQUIRED_SAMELINE_2-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_REQUIRED_SAMELINE_2: End completions
|
||||
|
||||
// INIT_REQUIRED_NEWLINE_2: Begin completions
|
||||
// FIXME-INIT_REQUIRED_NEWLINE_2-DAG: Pattern/ExprSpecific: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// FIXME-INIT_REQUIRED_NEWLINE_2-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INIT_REQUIRED_NEWLINE_2: End completions
|
||||
|
||||
// Call is completed.
|
||||
@@ -207,7 +207,7 @@ func testFallbackPostfix() {
|
||||
// the stage at which we complete argument labels, so we can't rule it out for
|
||||
// now (SR-14450).
|
||||
// INIT_FALLBACK_1: Begin completions, 3 items
|
||||
// INIT_FALLBACK_1-DAG: Pattern/ExprSpecific: {#arg3: () -> _ {|}#}[#() -> _#]
|
||||
// INIT_FALLBACK_1-DAG: Pattern/Local/Flair[ExprSpecific]: {#arg3: () -> _ {|}#}[#() -> _#]
|
||||
// INIT_FALLBACK_1-DAG: Decl[InstanceMethod]/CurrNominal: .testStructMethod()[#Void#];
|
||||
// INIT_FALLBACK_1-DAG: Keyword[self]/CurrNominal: .self[#MyStruct4<Int>#];
|
||||
// INIT_FALLBACK_1: End completions
|
||||
@@ -230,14 +230,14 @@ struct TestNominalMember: P {
|
||||
#^MEMBERDECL_NEWLINE^#
|
||||
|
||||
// MEMBERDECL_SAMELINE: Begin completions, 4 items
|
||||
// MEMBERDECL_SAMELINE-DAG: Pattern/ExprSpecific: {#fn2: (() -> String)? {|}#}[#(() -> String)?#]; name=fn2: (() -> String)?
|
||||
// MEMBERDECL_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: (() -> String)? {|}#}[#(() -> String)?#]; name=fn2: (() -> String)?
|
||||
// MEMBERDECL_SAMELINE-DAG: Decl[InstanceMethod]/CurrNominal: .enumFunc()[#Void#]; name=enumFunc()
|
||||
// MEMBERDECL_SAMELINE-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]/IsSystem: [' ']+ {#SimpleEnum#}[#SimpleEnum#]; name=+ SimpleEnum
|
||||
// MEMBERDECL_SAMELINE-DAG: Keyword[self]/CurrNominal: .self[#SimpleEnum#]; name=self
|
||||
// MEMBERDECL_SAMELINE: End completions
|
||||
|
||||
// MEMBERDECL_NEWLINE: Begin completions
|
||||
// FIXME-MEMBERDECL_NEWLINE-DAG: Pattern/ExprSpecific: {#fn2: (() -> String)? {|}#}[#(() -> String)?#]; name=fn2: (() -> String)?
|
||||
// FIXME-MEMBERDECL_NEWLINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: (() -> String)? {|}#}[#(() -> String)?#]; name=fn2: (() -> String)?
|
||||
// MEMBERDECL_NEWLINE-DAG: Keyword[enum]/None: enum; name=enum
|
||||
// MEMBERDECL_NEWLINE-DAG: Keyword[func]/None: func; name=func
|
||||
// MEMBERDECL_NEWLINE-DAG: Keyword[private]/None: private; name=private
|
||||
@@ -254,8 +254,8 @@ func testInitializedVarDecl() {
|
||||
#^INITIALIZED_VARDECL_NEWLINE^#
|
||||
// INITIALIZED_VARDECL_SAMELINE: Begin completions, 4 items
|
||||
// INITIALIZED_VARDECL_SAMELINE-NOT: localVal
|
||||
// INITIALIZED_VARDECL_SAMELINE-DAG: Pattern/ExprSpecific: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INITIALIZED_VARDECL_SAMELINE-DAG: Pattern/ExprSpecific: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INITIALIZED_VARDECL_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn2: () -> String {|}#}[#() -> String#];
|
||||
// INITIALIZED_VARDECL_SAMELINE-DAG: Pattern/Local/Flair[ExprSpecific]: {#fn3: () -> String {|}#}[#() -> String#];
|
||||
// INITIALIZED_VARDECL_SAMELINE-DAG: Decl[InstanceMethod]/CurrNominal: .testStructMethod()[#Void#];
|
||||
// INITIALIZED_VARDECL_SAMELINE-DAG: Keyword[self]/CurrNominal: .self[#TestStruct#];
|
||||
// INITIALIZED_VARDECL_SAMELINE-NOT: localVal
|
||||
|
||||
Reference in New Issue
Block a user