v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
server-data.cc
Go to the documentation of this file.
1
// Copyright 2019 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "
src/torque/server-data.h
"
6
7
#include <optional>
8
9
#include "
src/base/macros.h
"
10
#include "
src/torque/declarable.h
"
11
#include "
src/torque/implementation-visitor.h
"
12
13
EXPORT_CONTEXTUAL_VARIABLE
(
v8::internal::torque::LanguageServerData
)
14
15
namespace
v8::internal::torque
{
16
17
void
LanguageServerData::AddDefinition
(
SourcePosition
token,
18
SourcePosition
definition) {
19
Get
().definitions_map_[token.
source
].emplace_back(token, definition);
20
}
21
22
std::optional<SourcePosition>
LanguageServerData::FindDefinition
(
23
SourceId
source,
LineAndColumn
pos
) {
24
if
(!source.IsValid())
return
std::nullopt;
25
26
auto
iter =
Get
().definitions_map_.find(source);
27
if
(iter ==
Get
().
definitions_map_
.end())
return
std::nullopt;
28
29
for
(
const
DefinitionMapping
& mapping : iter->second) {
30
SourcePosition
current = mapping.first;
31
if
(current.Contains(
pos
))
return
mapping.second;
32
}
33
34
return
std::nullopt;
35
}
36
37
void
LanguageServerData::PrepareAllDeclarableSymbols
() {
38
const
std::vector<std::unique_ptr<Declarable>>& all_declarables =
39
global_context_
->declarables_;
40
41
for
(
const
auto
& declarable : all_declarables) {
42
// Class field accessors and implicit specializations are
43
// auto-generated and should not show up.
44
if
(!declarable->IsUserDefined())
continue
;
45
46
SourceId
source = declarable->Position().source;
47
symbols_map_
[
source
].push_back(declarable.get());
48
}
49
}
50
51
}
// namespace v8::internal::torque
pos
SourcePosition pos
Definition
class-debug-reader-generator.cc:34
v8::base::ContextualVariable::Get
static VarType & Get()
Definition
contextual.h:64
v8::internal::torque::LanguageServerData
Definition
server-data.h:37
v8::internal::torque::LanguageServerData::FindDefinition
static V8_EXPORT_PRIVATE std::optional< SourcePosition > FindDefinition(SourceId source, LineAndColumn pos)
Definition
server-data.cc:22
v8::internal::torque::LanguageServerData::PrepareAllDeclarableSymbols
void PrepareAllDeclarableSymbols()
Definition
server-data.cc:37
v8::internal::torque::LanguageServerData::AddDefinition
static V8_EXPORT_PRIVATE void AddDefinition(SourcePosition token, SourcePosition definition)
Definition
server-data.cc:17
v8::internal::torque::LanguageServerData::definitions_map_
DefinitionsMap definitions_map_
Definition
server-data.h:65
v8::internal::torque::LanguageServerData::global_context_
std::unique_ptr< GlobalContext > global_context_
Definition
server-data.h:67
v8::internal::torque::LanguageServerData::symbols_map_
SymbolsMap symbols_map_
Definition
server-data.h:66
v8::internal::torque::SourceId
Definition
source-positions.h:18
EXPORT_CONTEXTUAL_VARIABLE
#define EXPORT_CONTEXTUAL_VARIABLE(VarName)
Definition
contextual.h:94
declarable.h
implementation-visitor.h
source
InstructionOperand source
Definition
move-optimizer.cc:16
v8::internal::torque
Definition
ast.h:22
v8::internal::torque::DefinitionMapping
std::pair< SourcePosition, SourcePosition > DefinitionMapping
Definition
server-data.h:22
server-data.h
macros.h
v8::internal::torque::LineAndColumn
Definition
source-positions.h:32
v8::internal::torque::SourcePosition
Definition
source-positions.h:57
v8::internal::torque::SourcePosition::source
SourceId source
Definition
source-positions.h:58
src
torque
server-data.cc
Generated on Sun Apr 6 2025 21:08:57 for v8 by
1.12.0