@@ -74,4 +74,150 @@ EMSCRIPTEN_BINDINGS(slang)
74
74
return_value_policy::take_ownership ());
75
75
76
76
register_vector<slang::wgsl::ComponentType*>(" ComponentTypeList" );
77
+
78
+ register_vector<std::string>(" StringList" );
79
+ register_optional<std::vector<std::string>>();
80
+
81
+ value_object<slang::wgsl::lsp::Position>(" Position" )
82
+ .field (" line" , &slang::wgsl::lsp::Position::line)
83
+ .field (" character" , &slang::wgsl::lsp::Position::character);
84
+
85
+ value_object<slang::wgsl::lsp::Range>(" Range" )
86
+ .field (" start" , &slang::wgsl::lsp::Range::start)
87
+ .field (" end" , &slang::wgsl::lsp::Range::end);
88
+
89
+ value_object<slang::wgsl::lsp::Location>(" Location" )
90
+ .field (" uri" , &slang::wgsl::lsp::Location::uri)
91
+ .field (" range" , &slang::wgsl::lsp::Location::range);
92
+ register_vector<slang::wgsl::lsp::Location>(" LocationList" );
93
+ register_optional<std::vector<slang::wgsl::lsp::Location>>();
94
+
95
+ value_object<slang::wgsl::lsp::TextEdit>(" TextEdit" )
96
+ .field (" range" , &slang::wgsl::lsp::TextEdit::range)
97
+ .field (" text" , &slang::wgsl::lsp::TextEdit::text);
98
+ register_optional<slang::wgsl::lsp::TextEdit>();
99
+ register_vector<slang::wgsl::lsp::TextEdit>(" TextEditList" );
100
+ register_optional<std::vector<slang::wgsl::lsp::TextEdit>>();
101
+
102
+ value_object<slang::wgsl::lsp::MarkupContent>(" MarkupContent" )
103
+ .field (" kind" , &slang::wgsl::lsp::MarkupContent::kind)
104
+ .field (" value" , &slang::wgsl::lsp::MarkupContent::value);
105
+ register_optional<slang::wgsl::lsp::MarkupContent>();
106
+
107
+ value_object<slang::wgsl::lsp::Hover>(" Hover" )
108
+ .field (" contents" , &slang::wgsl::lsp::Hover::contents)
109
+ .field (" range" , &slang::wgsl::lsp::Hover::range);
110
+ register_optional<slang::wgsl::lsp::Hover>();
111
+
112
+ value_object<slang::wgsl::lsp::CompletionItem>(" CompletionItem" )
113
+ .field (" label" , &slang::wgsl::lsp::CompletionItem::label)
114
+ .field (" kind" , &slang::wgsl::lsp::CompletionItem::kind)
115
+ .field (" detail" , &slang::wgsl::lsp::CompletionItem::detail)
116
+ .field (" documentation" , &slang::wgsl::lsp::CompletionItem::documentation)
117
+ .field (" textEdit" , &slang::wgsl::lsp::CompletionItem::textEdit)
118
+ .field (" data" , &slang::wgsl::lsp::CompletionItem::data)
119
+ .field (" commitCharacters" , &slang::wgsl::lsp::CompletionItem::commitCharacters);
120
+ register_optional<slang::wgsl::lsp::CompletionItem>();
121
+ register_vector<slang::wgsl::lsp::CompletionItem>(" CompletionItemList" );
122
+ register_optional<std::vector<slang::wgsl::lsp::CompletionItem>>();
123
+
124
+ value_object<slang::wgsl::lsp::CompletionContext>(" CompletionContext" )
125
+ .field (" triggerKind" , &slang::wgsl::lsp::CompletionContext::triggerKind)
126
+ .field (" triggerCharacter" , &slang::wgsl::lsp::CompletionContext::triggerCharacter);
127
+
128
+ value_array<std::array<uint32_t , 2 >>(" array_uint_2" )
129
+ .element (emscripten::index <0 >())
130
+ .element (emscripten::index <1 >());
131
+
132
+ value_object<slang::wgsl::lsp::ParameterInformation>(" ParameterInformation" )
133
+ .field (" label" , &slang::wgsl::lsp::ParameterInformation::label)
134
+ .field (" documentation" , &slang::wgsl::lsp::ParameterInformation::documentation);
135
+
136
+ register_vector<slang::wgsl::lsp::ParameterInformation>(" ParameterInformationList" );
137
+
138
+ value_object<slang::wgsl::lsp::SignatureInformation>(" SignatureInformation" )
139
+ .field (" label" , &slang::wgsl::lsp::SignatureInformation::label)
140
+ .field (" documentation" , &slang::wgsl::lsp::SignatureInformation::documentation)
141
+ .field (" parameters" , &slang::wgsl::lsp::SignatureInformation::parameters);
142
+
143
+ register_vector<slang::wgsl::lsp::SignatureInformation>(" SignatureInformationList" );
144
+
145
+ value_object<slang::wgsl::lsp::SignatureHelp>(" SignatureHelp" )
146
+ .field (" signatures" , &slang::wgsl::lsp::SignatureHelp::signatures)
147
+ .field (" activeSignature" , &slang::wgsl::lsp::SignatureHelp::activeSignature)
148
+ .field (" activeParameter" , &slang::wgsl::lsp::SignatureHelp::activeParameter);
149
+ register_optional<slang::wgsl::lsp::SignatureHelp>();
150
+
151
+ value_object<slang::wgsl::lsp::DocumentSymbol>(" DocumentSymbol" )
152
+ .field (" name" , &slang::wgsl::lsp::DocumentSymbol::name)
153
+ .field (" detail" , &slang::wgsl::lsp::DocumentSymbol::detail)
154
+ .field (" kind" , &slang::wgsl::lsp::DocumentSymbol::kind)
155
+ .field (" range" , &slang::wgsl::lsp::DocumentSymbol::range)
156
+ .field (" selectionRange" , &slang::wgsl::lsp::DocumentSymbol::selectionRange)
157
+ .field (" children" , &slang::wgsl::lsp::DocumentSymbol::children);
158
+
159
+ register_vector<slang::wgsl::lsp::DocumentSymbol>(" DocumentSymbolList" );
160
+ register_optional<std::vector<slang::wgsl::lsp::DocumentSymbol>>();
161
+
162
+ value_object<slang::wgsl::lsp::Diagnostics>(" Diagnostics" )
163
+ .field (" code" , &slang::wgsl::lsp::Diagnostics::code)
164
+ .field (" range" , &slang::wgsl::lsp::Diagnostics::range)
165
+ .field (" severity" , &slang::wgsl::lsp::Diagnostics::severity)
166
+ .field (" message" , &slang::wgsl::lsp::Diagnostics::message);
167
+ register_vector<slang::wgsl::lsp::Diagnostics>(" DiagnosticsList" );
168
+ register_optional<std::vector<slang::wgsl::lsp::Diagnostics>>();
169
+
170
+ register_vector<uint32_t >(" Uint32List" );
171
+ register_optional<std::vector<uint32_t >>();
172
+
173
+ class_<slang::wgsl::lsp::LanguageServer>(" LanguageServer" )
174
+ .function (
175
+ " didOpenTextDocument" ,
176
+ &slang::wgsl::lsp::LanguageServer::didOpenTextDocument,
177
+ allow_raw_pointers ())
178
+ .function (
179
+ " didCloseTextDocument" ,
180
+ &slang::wgsl::lsp::LanguageServer::didCloseTextDocument,
181
+ allow_raw_pointers ())
182
+ .function (
183
+ " didChangeTextDocument" ,
184
+ &slang::wgsl::lsp::LanguageServer::didChangeTextDocument,
185
+ allow_raw_pointers ())
186
+ .function (
187
+ " hover" ,
188
+ &slang::wgsl::lsp::LanguageServer::hover,
189
+ allow_raw_pointers ())
190
+ .function (
191
+ " gotoDefinition" ,
192
+ &slang::wgsl::lsp::LanguageServer::gotoDefinition,
193
+ allow_raw_pointers ())
194
+ .function (
195
+ " completion" ,
196
+ &slang::wgsl::lsp::LanguageServer::completion,
197
+ allow_raw_pointers ())
198
+ .function (
199
+ " completionResolve" ,
200
+ &slang::wgsl::lsp::LanguageServer::completionResolve,
201
+ allow_raw_pointers ())
202
+ .function (
203
+ " semanticTokens" ,
204
+ &slang::wgsl::lsp::LanguageServer::semanticTokens,
205
+ allow_raw_pointers ())
206
+ .function (
207
+ " signatureHelp" ,
208
+ &slang::wgsl::lsp::LanguageServer::signatureHelp,
209
+ allow_raw_pointers ())
210
+ .function (
211
+ " documentSymbol" ,
212
+ &slang::wgsl::lsp::LanguageServer::documentSymbol,
213
+ allow_raw_pointers ())
214
+ .function (
215
+ " getDiagnostics" ,
216
+ &slang::wgsl::lsp::LanguageServer::getDiagnostics,
217
+ allow_raw_pointers ());
218
+
219
+ function (
220
+ " createLanguageServer" ,
221
+ &slang::wgsl::lsp::createLanguageServer,
222
+ return_value_policy::take_ownership ());
77
223
}
0 commit comments