nixd
Toggle main menu visibility
Loading...
Searching...
No Matches
nixd
lib
Controller
Convert.cpp
Go to the documentation of this file.
1
#include "
Convert.h
"
2
3
#include "
nixf/Basic/Diagnostic.h
"
4
5
#include "
lspserver/SourceCode.h
"
6
7
#include <llvm/ADT/StringRef.h>
8
9
using namespace
lspserver
;
10
11
int
nixd::getLSPSeverity
(nixf::Diagnostic::DiagnosticKind Kind) {
12
switch
(
nixf::Diagnostic::severity
(Kind)) {
13
case
nixf::Diagnostic::DS_Fatal
:
14
case
nixf::Diagnostic::DS_Error
:
15
return
1;
16
case
nixf::Diagnostic::DS_Warning
:
17
return
2;
18
case
nixf::Diagnostic::DS_Info
:
19
return
3;
20
case
nixf::Diagnostic::DS_Hint
:
21
return
4;
22
}
23
assert(
false
&&
"Invalid severity"
);
24
__builtin_unreachable();
25
}
26
27
lspserver::Position
nixd::toLSPPosition
(llvm::StringRef Code,
28
const
nixf::LexerCursor
&P) {
29
return
lspserver::offsetToPosition
(Code, P.
offset
());
30
}
31
32
nixf::Position
nixd::toNixfPosition
(
const
lspserver::Position
&P) {
33
return
{P.
line
, P.
character
};
34
}
35
36
nixf::PositionRange
nixd::toNixfRange
(
const
lspserver::Range
&P) {
37
return
{
toNixfPosition
(P.
start
),
toNixfPosition
(P.
end
)};
38
}
39
40
lspserver::Range
nixd::toLSPRange
(llvm::StringRef Code,
41
const
nixf::LexerCursorRange
&R) {
42
return
lspserver::Range
{
toLSPPosition
(Code, R.
lCur
()),
43
toLSPPosition
(Code, R.
rCur
())};
44
}
45
46
llvm::SmallVector<lspserver::DiagnosticTag, 1>
47
nixd::toLSPTags
(
const
std::vector<nixf::DiagnosticTag> &Tags) {
48
llvm::SmallVector<lspserver::DiagnosticTag, 1> Result;
49
Result.reserve(Tags.size());
50
for
(
const
nixf::DiagnosticTag
&Tag : Tags) {
51
switch
(Tag) {
52
case
nixf::DiagnosticTag::Faded
:
53
Result.emplace_back(
DiagnosticTag::Unnecessary
);
54
break
;
55
case
nixf::DiagnosticTag::Striked
:
56
Result.emplace_back(
DiagnosticTag::Deprecated
);
57
break
;
58
}
59
}
60
return
Result;
61
}
Convert.h
Convert between LSP and nixf types.
Diagnostic.h
SourceCode.h
nixf::Diagnostic::DS_Warning
@ DS_Warning
A warning.
Definition
Diagnostic.h:160
nixf::Diagnostic::DS_Fatal
@ DS_Fatal
shouldn't eval the code, e.g. parsing error.
Definition
Diagnostic.h:156
nixf::Diagnostic::DS_Info
@ DS_Info
An information.
Definition
Diagnostic.h:162
nixf::Diagnostic::DS_Hint
@ DS_Hint
Definition
Diagnostic.h:167
nixf::Diagnostic::DS_Error
@ DS_Error
trigger an error in nix, but we can recover & eval the code.
Definition
Diagnostic.h:158
nixf::Diagnostic::severity
static Severity severity(DiagnosticKind Kind)
nixf::LexerCursorRange
Definition
Range.h:105
nixf::LexerCursorRange::lCur
LexerCursor lCur() const
Definition
Range.h:116
nixf::LexerCursorRange::rCur
LexerCursor rCur() const
Definition
Range.h:117
nixf::LexerCursor
A point in the source file.
Definition
Range.h:57
nixf::LexerCursor::offset
std::size_t offset() const
Offset in the source file, starting from 0.
Definition
Range.h:102
nixf::PositionRange
Definition
Range.h:33
nixf::Position
Definition
Range.h:8
lspserver
Whether current platform treats paths case insensitively.
Definition
Connection.h:11
lspserver::offsetToPosition
Position offsetToPosition(llvm::StringRef Code, size_t Offset)
Definition
SourceCode.cpp:145
lspserver::Deprecated
@ Deprecated
Definition
lspserver/include/lspserver/Protocol.h:954
lspserver::Unnecessary
@ Unnecessary
Definition
lspserver/include/lspserver/Protocol.h:950
nixd::getLSPSeverity
int getLSPSeverity(nixf::Diagnostic::DiagnosticKind Kind)
Definition
Convert.cpp:11
nixd::toNixfRange
nixf::PositionRange toNixfRange(const lspserver::Range &P)
Definition
Convert.cpp:36
nixd::toLSPPosition
lspserver::Position toLSPPosition(llvm::StringRef Code, const nixf::LexerCursor &P)
Definition
Convert.cpp:27
nixd::toNixfPosition
nixf::Position toNixfPosition(const lspserver::Position &P)
Definition
Convert.cpp:32
nixd::toLSPRange
lspserver::Range toLSPRange(llvm::StringRef Code, const nixf::LexerCursorRange &R)
Definition
Convert.cpp:40
nixd::toLSPTags
llvm::SmallVector< lspserver::DiagnosticTag, 1 > toLSPTags(const std::vector< nixf::DiagnosticTag > &Tags)
Definition
Convert.cpp:47
nixf::DiagnosticTag
DiagnosticTag
Definition
Diagnostic.h:74
nixf::DiagnosticTag::Faded
@ Faded
Definition
Diagnostic.h:75
nixf::DiagnosticTag::Striked
@ Striked
Definition
Diagnostic.h:76
lspserver::Position
Definition
lspserver/include/lspserver/Protocol.h:129
lspserver::Position::line
int64_t line
Line position in a document (zero-based).
Definition
lspserver/include/lspserver/Protocol.h:131
lspserver::Position::character
int64_t character
Definition
lspserver/include/lspserver/Protocol.h:136
lspserver::Range
Definition
lspserver/include/lspserver/Protocol.h:158
lspserver::Range::start
Position start
The range's start position.
Definition
lspserver/include/lspserver/Protocol.h:160
lspserver::Range::end
Position end
The range's end position.
Definition
lspserver/include/lspserver/Protocol.h:163
Generated by
1.17.0