• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wurstscript / WurstScript / 210

26 Oct 2023 10:10PM UTC coverage: 62.609% (-1.1%) from 63.756%
210

push

circleci

web-flow
Jass And Wurst Formatter (#620)

Support for formatting .wurst and .j files.

Thanks @karlek 

Co-authored-by: Frotty <Frotty@users.noreply.github.com>
Co-authored-by: Peter Zeller <Peter.peq@googlemail.com>

17297 of 27627 relevant lines covered (62.61%)

0.63 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/WurstTextDocumentService.java
1
package de.peeeq.wurstio.languageserver;
2

3
import de.peeeq.wurstio.languageserver.requests.*;
4
import de.peeeq.wurstscript.WLogger;
5
import de.peeeq.wurstscript.attributes.prettyPrint.PrettyUtils;
6
import org.eclipse.lsp4j.*;
7
import org.eclipse.lsp4j.jsonrpc.messages.Either;
8
import org.eclipse.lsp4j.services.TextDocumentService;
9

10
import java.io.BufferedReader;
11
import java.io.FileReader;
12
import java.util.ArrayList;
13
import java.util.List;
14
import java.util.concurrent.CompletableFuture;
15
import java.util.stream.Collectors;
16

17
/**
18
 *
19
 */
20
public class WurstTextDocumentService implements TextDocumentService {
21
    private final LanguageWorker worker;
22

23
    public WurstTextDocumentService(LanguageWorker worker) {
×
24
        this.worker = worker;
×
25
    }
×
26

27

28
    @Override
29
    public CompletableFuture<Either<List<CompletionItem>, CompletionList>> completion(CompletionParams position) {
30
        WLogger.info("completion");
×
31
        return worker.handle(new GetCompletions(position, worker.getBufferManager())).thenApply(Either::forRight);
×
32
    }
33

34
    @Override
35
    public CompletableFuture<CompletionItem> resolveCompletionItem(CompletionItem unresolved) {
36
        WLogger.info("resolveCompletionItem");
×
37
        return null;
×
38
    }
39

40
    @Override
41
    public CompletableFuture<Hover> hover(HoverParams hoverParams) {
42
        WLogger.info("hover");
×
43
        return worker.handle(new HoverInfo(hoverParams, worker.getBufferManager()));
×
44
    }
45

46
    @Override
47
    public CompletableFuture<SignatureHelp> signatureHelp(SignatureHelpParams helpParams) {
48
        WLogger.info("signatureHelp");
×
49
        return worker.handle(new SignatureInfo(helpParams));
×
50
    }
51

52
    @Override
53
    public CompletableFuture<Either<List<? extends Location>, List<? extends LocationLink>>> definition(DefinitionParams definitionParams) {
54
        WLogger.info("definition");
×
55
        return worker.handle(new GetDefinition(definitionParams, worker.getBufferManager()));
×
56
    }
57

58
    @Override
59
    public CompletableFuture<List<? extends Location>> references(ReferenceParams params) {
60
        WLogger.info("references");
×
61
        return worker.handle(new GetUsages(params, worker.getBufferManager(), true))
×
62
                .thenApply((List<GetUsages.UsagesData> udList) ->
×
63
                        udList.stream()
×
64
                                .map(GetUsages.UsagesData::getLocation)
×
65
                                .collect(Collectors.toList()));
×
66
    }
67

68
    @Override
69
    public CompletableFuture<List<? extends DocumentHighlight>> documentHighlight(DocumentHighlightParams highlightParams) {
70
        WLogger.info("documentHighlight");
×
71
        return worker.handle(new GetUsages(highlightParams, worker.getBufferManager(), false))
×
72
                .thenApply((List<GetUsages.UsagesData> udList) ->
×
73
                        udList.stream()
×
74
                                .map(GetUsages.UsagesData::toDocumentHighlight)
×
75
                                .collect(Collectors.toList()));
×
76
    }
77

78
    @Override
79
    public CompletableFuture<List<Either<SymbolInformation, DocumentSymbol>>> documentSymbol(DocumentSymbolParams params) {
80
        return worker.handle(new DocumentSymbolRequest(params));
×
81
    }
82

83
    @Override
84
    public CompletableFuture<List<Either<Command, CodeAction>>> codeAction(CodeActionParams params) {
85
        WLogger.info("codeAction");
×
86
        return worker.handle(new CodeActionRequest(params, worker.getBufferManager()));
×
87
    }
88

89
    @Override
90
    public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
91
        return worker.handle(new CodeLensRequest.GetCodeLens(params, worker. getBufferManager()));
×
92
    }
93

94
    @Override
95
    public CompletableFuture<CodeLens> resolveCodeLens(CodeLens unresolved) {
96
        return worker.handle(new CodeLensRequest.Resolve(unresolved));
×
97
    }
98

99
    @Override
100
    public CompletableFuture<List<? extends TextEdit>> formatting(DocumentFormattingParams params) {
101
        WLogger.info("formatting");
×
102
        TextDocumentIdentifier doc = params.getTextDocument();
×
103
        String buffer = worker.getBufferManager().getBuffer(doc);
×
104

105
        String ending = doc.getUri().substring(doc.getUri().lastIndexOf("."));
×
106
        String clean = PrettyUtils.pretty(buffer, ending);
×
107

108
        String[] lines = buffer.split("\n");
×
109
        Range range = new Range(new Position(0, 0), new Position(lines.length, lines[lines.length-1].length()));
×
110
        TextEdit textEdit = new TextEdit(range, clean);
×
111

112
        List<TextEdit> edits = new ArrayList<>();
×
113
        edits.add(textEdit);
×
114
        return CompletableFuture.completedFuture(edits);
×
115
    }
116

117
    @Override
118
    public CompletableFuture<List<? extends TextEdit>> rangeFormatting(DocumentRangeFormattingParams params) {
119
        WLogger.info("rangeFormatting");
×
120
        return null;
×
121
    }
122

123
    @Override
124
    public CompletableFuture<List<? extends TextEdit>> onTypeFormatting(DocumentOnTypeFormattingParams params) {
125
        WLogger.info("onTypeFormatting");
×
126
        return null;
×
127
    }
128

129
    @Override
130
    public CompletableFuture<WorkspaceEdit> rename(RenameParams params) {
131
        WLogger.info("rename");
×
132
        return worker.handle(new RenameRequest(params, worker.getBufferManager()));
×
133
    }
134

135
    @Override
136
    public void didOpen(DidOpenTextDocumentParams params) {
137
        WLogger.info("didOpen");
×
138

139
    }
×
140

141
    @Override
142
    public void didChange(DidChangeTextDocumentParams params) {
143
        WLogger.info("didChange");
×
144
        worker.handleChange(params);
×
145

146
    }
×
147

148
    @Override
149
    public void didClose(DidCloseTextDocumentParams params) {
150
        WLogger.info("didClose");
×
151

152
    }
×
153

154
    @Override
155
    public void didSave(DidSaveTextDocumentParams params) {
156
        WLogger.info("didSave");
×
157

158
    }
×
159

160
    @Override
161
    public CompletableFuture<List<ColorInformation>> documentColor(DocumentColorParams params) {
162
        return worker.handle(new Colors.DocumentColorRequest(params));
×
163
    }
164

165
    @Override
166
    public CompletableFuture<List<ColorPresentation>> colorPresentation(ColorPresentationParams params) {
167
        return worker.handle(new Colors.ColorPresentationRequest(params));
×
168
    }
169

170
    @Override
171
    public CompletableFuture<List<FoldingRange>> foldingRange(FoldingRangeRequestParams params) {
172
        return worker.handle(new FoldingRangeRequest(params));
×
173
    }
174
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc