Skip to content

Commit 42bcb8b

Browse files
committed
move api to api, impl to impl
1 parent 6a97f1e commit 42bcb8b

15 files changed

Lines changed: 149 additions & 130 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright 2013-2017 consulo.io
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package consulo.csharp.editor.completion;
18+
19+
import consulo.annotation.access.RequiredReadAction;
20+
import consulo.annotation.component.ComponentScope;
21+
import consulo.annotation.component.ExtensionAPI;
22+
import consulo.component.extension.ExtensionPointName;
23+
import consulo.csharp.lang.psi.CSharpTypeDeclaration;
24+
import consulo.language.editor.completion.CompletionParameters;
25+
import consulo.language.editor.completion.lookup.LookupElement;
26+
import consulo.language.util.ProcessingContext;
27+
28+
import java.util.function.Consumer;
29+
30+
/**
31+
* @author VISTALL
32+
* @since 24.12.14
33+
*/
34+
@ExtensionAPI(ComponentScope.APPLICATION)
35+
public interface CSharpMemberAddByCompletionContributor {
36+
ExtensionPointName<CSharpMemberAddByCompletionContributor> EP_NAME = ExtensionPointName.create(CSharpMemberAddByCompletionContributor.class);
37+
38+
@RequiredReadAction
39+
void processCompletion(CompletionParameters parameters, ProcessingContext context, Consumer<LookupElement> result, CSharpTypeDeclaration typeDeclaration);
40+
}

csharp-editor-api/src/main/java/module-info.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
requires consulo.csharp.csharp.psi.api;
88
requires consulo.color.scheme.api;
99
requires consulo.code.editor.api;
10+
requires consulo.language.editor.api;
1011

12+
exports consulo.csharp.editor.completion;
1113
exports consulo.csharp.editor.highlight;
1214
}

csharp-impl/src/main/java/consulo/csharp/impl/ide/completion/CSharpCompletionContributor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import consulo.annotation.access.RequiredReadAction;
2020
import consulo.annotation.component.ExtensionImpl;
21+
import consulo.csharp.editor.completion.CSharpMemberAddByCompletionContributor;
2122
import consulo.csharp.lang.CSharpLanguage;
2223
import consulo.language.Language;
2324
import consulo.language.editor.completion.*;
@@ -42,7 +43,7 @@ public CSharpCompletionContributor()
4243

4344
CSharpExpressionCompletionContributor.extend(this);
4445

45-
CSharpMemberAddByCompletionContributor.extend(this);
46+
CSharpMemberAddByCompletionContributorImpl.extend(this);
4647
}
4748

4849
@Override

csharp-impl/src/main/java/consulo/csharp/impl/ide/completion/CSharpMemberAddByCompletionContributor.java

Lines changed: 0 additions & 101 deletions
This file was deleted.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/*
2+
* Copyright 2013-2026 consulo.io
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package consulo.csharp.impl.ide.completion;
18+
19+
import consulo.annotation.access.RequiredReadAction;
20+
import consulo.csharp.editor.completion.CSharpMemberAddByCompletionContributor;
21+
import consulo.csharp.impl.ide.completion.patterns.CSharpPatterns;
22+
import consulo.csharp.lang.impl.psi.UsefulPsiTreeUtil;
23+
import consulo.csharp.lang.psi.CSharpFieldDeclaration;
24+
import consulo.csharp.lang.psi.CSharpTypeDeclaration;
25+
import consulo.document.util.TextRange;
26+
import consulo.dotnet.psi.DotNetModifierList;
27+
import consulo.language.editor.completion.*;
28+
import consulo.language.editor.completion.lookup.LookupElement;
29+
import consulo.language.psi.PsiElement;
30+
import consulo.language.psi.util.PsiTreeUtil;
31+
import consulo.language.util.ProcessingContext;
32+
import consulo.util.lang.StringUtil;
33+
34+
import java.util.function.Consumer;
35+
36+
/**
37+
* @author VISTALL
38+
* @since 2026-04-12
39+
*/
40+
public class CSharpMemberAddByCompletionContributorImpl {
41+
static void extend(CompletionContributor contributor) {
42+
contributor.extend(CompletionType.BASIC, CSharpPatterns.fieldStart(), new CompletionProvider() {
43+
@RequiredReadAction
44+
@Override
45+
public void addCompletions(CompletionParameters parameters, ProcessingContext context, CompletionResultSet result) {
46+
CSharpFieldDeclaration currentElement = PsiTreeUtil.getParentOfType(parameters.getPosition(), CSharpFieldDeclaration.class);
47+
assert currentElement != null;
48+
49+
DotNetModifierList modifierList = currentElement.getModifierList();
50+
if (modifierList != null) {
51+
int textLength = modifierList.getTextLength();
52+
if (textLength > 0) {
53+
return;
54+
}
55+
}
56+
57+
PsiElement nextSibling = UsefulPsiTreeUtil.getNextSiblingSkippingWhiteSpacesAndComments(currentElement);
58+
TextRange textRange = nextSibling == null ? null : new TextRange(currentElement.getTextRange().getStartOffset(), nextSibling.getTextRange().getStartOffset());
59+
if (textRange != null && !StringUtil.containsLineBreak(textRange.subSequence(currentElement.getContainingFile().getText()))) {
60+
return;
61+
}
62+
63+
CSharpTypeDeclaration typeDeclaration = PsiTreeUtil.getParentOfType(parameters.getPosition(), CSharpTypeDeclaration.class);
64+
65+
if (typeDeclaration == null) {
66+
return;
67+
}
68+
69+
Consumer<LookupElement> delegate = lookupElement ->
70+
{
71+
if (lookupElement != null) {
72+
CSharpCompletionSorting.force(lookupElement, CSharpCompletionSorting.KindSorter.Type.overrideMember);
73+
result.accept(lookupElement);
74+
}
75+
};
76+
77+
for (CSharpMemberAddByCompletionContributor completionContributor : CSharpMemberAddByCompletionContributor.EP_NAME.getExtensionList()) {
78+
completionContributor.processCompletion(parameters, context, delegate, typeDeclaration);
79+
}
80+
}
81+
});
82+
}
83+
}

csharp-impl/src/main/java/consulo/csharp/impl/ide/completion/CSharpOverrideOrImplementCompletionContributor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import consulo.annotation.component.ExtensionImpl;
2121
import consulo.application.AllIcons;
2222
import consulo.codeEditor.CaretModel;
23+
import consulo.csharp.editor.completion.CSharpMemberAddByCompletionContributor;
2324
import consulo.csharp.impl.ide.CSharpElementPresentationUtil;
2425
import consulo.csharp.impl.ide.actions.generate.GenerateImplementMemberHandler;
2526
import consulo.csharp.impl.ide.actions.generate.GenerateOverrideMemberHandler;

csharp-psi-api/src/main/java/consulo/csharp/lang/CSharpAdditionalMemberProvider.java renamed to csharp-psi-api/src/main/java/consulo/csharp/lang/psi/CSharpAdditionalMemberProvider.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package consulo.csharp.lang;
17+
package consulo.csharp.lang.psi;
1818

1919
import consulo.annotation.access.RequiredReadAction;
2020
import consulo.annotation.component.ComponentScope;
@@ -31,22 +31,20 @@
3131
* @since 26.10.14
3232
*/
3333
@ExtensionAPI(ComponentScope.APPLICATION)
34-
public interface CSharpAdditionalMemberProvider
35-
{
36-
ExtensionPointName<CSharpAdditionalMemberProvider> EP_NAME = ExtensionPointName.create(CSharpAdditionalMemberProvider.class);
34+
public interface CSharpAdditionalMemberProvider {
35+
ExtensionPointName<CSharpAdditionalMemberProvider> EP_NAME = ExtensionPointName.create(CSharpAdditionalMemberProvider.class);
3736

38-
enum Target
39-
{
40-
CONSTRUCTOR,
41-
DE_CONSTRUCTOR,
42-
INDEX_METHOD,
43-
CONVERSION_METHOD,
44-
OPERATOR_METHOD,
45-
OTHER
46-
}
37+
enum Target {
38+
CONSTRUCTOR,
39+
DE_CONSTRUCTOR,
40+
INDEX_METHOD,
41+
CONVERSION_METHOD,
42+
OPERATOR_METHOD,
43+
OTHER
44+
}
4745

48-
@RequiredReadAction
49-
void processAdditionalMembers(DotNetElement element, DotNetGenericExtractor extractor, Consumer<PsiElement> consumer);
46+
@RequiredReadAction
47+
void processAdditionalMembers(DotNetElement element, DotNetGenericExtractor extractor, Consumer<PsiElement> consumer);
5048

51-
Target getTarget();
49+
Target getTarget();
5250
}

csharp-psi-impl/src/main/java/consulo/csharp/lang/impl/psi/resolve/additionalMembersImpl/ConversionMethodsProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
import consulo.csharp.lang.impl.psi.light.builder.CSharpLightConversionMethodDeclarationBuilder;
2222
import consulo.csharp.lang.impl.psi.light.builder.CSharpLightLikeMethodDeclarationBuilder;
2323
import consulo.csharp.lang.impl.psi.light.builder.CSharpLightParameterBuilder;
24-
import consulo.csharp.lang.CSharpAdditionalMemberProvider;
2524
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpLambdaTypeRef;
2625
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpStaticTypeRef;
2726
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpTypeRefByQName;
2827
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpTypeRefByTypeDeclaration;
2928
import consulo.csharp.lang.impl.psi.source.resolve.util.CSharpResolveUtil;
29+
import consulo.csharp.lang.psi.CSharpAdditionalMemberProvider;
3030
import consulo.csharp.lang.psi.CSharpMethodDeclaration;
3131
import consulo.csharp.lang.psi.CSharpTokens;
3232
import consulo.csharp.lang.psi.CSharpTypeDeclaration;

csharp-psi-impl/src/main/java/consulo/csharp/lang/impl/psi/resolve/additionalMembersImpl/OperatorsProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
import consulo.annotation.component.ExtensionImpl;
2121
import consulo.csharp.lang.impl.psi.light.builder.CSharpLightMethodDeclarationBuilder;
2222
import consulo.csharp.lang.impl.psi.light.builder.CSharpLightParameterBuilder;
23-
import consulo.csharp.lang.CSharpAdditionalMemberProvider;
2423
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpLambdaTypeRef;
2524
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpTypeRefByQName;
2625
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpTypeRefByTypeDeclaration;
2726
import consulo.csharp.lang.impl.psi.source.resolve.util.CSharpResolveUtil;
27+
import consulo.csharp.lang.psi.CSharpAdditionalMemberProvider;
2828
import consulo.csharp.lang.psi.CSharpMethodDeclaration;
2929
import consulo.csharp.lang.psi.CSharpTokens;
3030
import consulo.csharp.lang.psi.CSharpTypeDeclaration;

csharp-psi-impl/src/main/java/consulo/csharp/lang/impl/psi/resolve/additionalMembersImpl/StructOrGenericParameterConstructorProvider.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,10 @@
2020
import consulo.annotation.component.ExtensionImpl;
2121
import consulo.csharp.lang.impl.psi.light.builder.CSharpLightConstructorDeclarationBuilder;
2222
import consulo.csharp.lang.impl.psi.light.builder.CSharpLightParameterBuilder;
23-
import consulo.csharp.lang.CSharpAdditionalMemberProvider;
2423
import consulo.csharp.lang.impl.psi.source.resolve.type.CSharpLambdaTypeRef;
2524
import consulo.csharp.lang.impl.psi.source.resolve.type.wrapper.GenericUnwrapTool;
2625
import consulo.csharp.lang.impl.psi.source.resolve.util.CSharpResolveUtil;
27-
import consulo.csharp.lang.psi.CSharpConstructorDeclaration;
28-
import consulo.csharp.lang.psi.CSharpMethodDeclaration;
29-
import consulo.csharp.lang.psi.CSharpModifier;
30-
import consulo.csharp.lang.psi.CSharpTypeDeclaration;
26+
import consulo.csharp.lang.psi.*;
3127
import consulo.dotnet.psi.DotNetElement;
3228
import consulo.dotnet.psi.DotNetGenericParameter;
3329
import consulo.dotnet.psi.DotNetNamedElement;

0 commit comments

Comments
 (0)