Ejemplo n.º 1
0
 internal void WriteToJson(System.Text.Json.Utf8JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WriteString("label", Label);
     if (!string.IsNullOrEmpty(Documentation))
     {
         writer.WritePropertyName("documentation");
         //monaco.IMarkdownString
         writer.WriteStartObject();
         writer.WriteString("value", $"**{Name}**: {Documentation}");
         writer.WriteEndObject();
     }
     writer.WriteEndObject();
 }
Ejemplo n.º 2
0
        internal void WriteToJson(System.Text.Json.Utf8JsonWriter writer)
        {
            writer.WritePropertyName(nameof(PartitionKeys));
            writer.WriteStartArray();
            if (PartitionKeys != null)
            {
                for (int i = 0; i < PartitionKeys.Length; i++)
                {
                    writer.WriteNumberValue(PartitionKeys[i]);
                }
            }
            writer.WriteEndArray();

            writer.WritePropertyName(nameof(ClusteringColumns));
            if (ClusteringColumns != null && ClusteringColumns.Length > 0)
            {
                writer.WriteStartArray();
                for (int i = 0; i < ClusteringColumns.Length; i++)
                {
                    writer.WriteStartObject();
                    writer.WriteNumber("MemberId", ClusteringColumns[i].MemberId);
                    writer.WriteBoolean("OrderByDesc", ClusteringColumns[i].OrderByDesc);
                    writer.WriteEndObject();
                }
                writer.WriteEndArray();
            }
            else
            {
                writer.WriteEmptyArray();
            }
        }
Ejemplo n.º 3
0
        internal void WriteToJson(System.Text.Json.Utf8JsonWriter writer)
        {
            //monaco.DocumentSymbol
            writer.WriteStartObject();
            writer.WriteString("name", DisplayName);
            writer.WriteString("detail", "");
            writer.WriteNumber("kind", SymbolKinds.ToMonacoKind(Kind));

            var fullRange = Ranges["full"];
            var nameRange = Ranges["name"];

            writer.WritePropertyName("range");
            fullRange.WriteToJson(writer);
            writer.WritePropertyName("selectionRange");
            nameRange.WriteToJson(writer);

            if (Children != null)
            {
                writer.WritePropertyName("children");
                writer.WriteStartArray();
                foreach (var child in Children)
                {
                    child.WriteToJson(writer);
                }
                writer.WriteEndArray();
            }

            writer.WriteEndObject();
        }
Ejemplo n.º 4
0
 internal void WriteToJson(System.Text.Json.Utf8JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WriteNumber("startLineNumber", Start.Line + 1); //注意往前传+1,非-1
     writer.WriteNumber("startColumn", Start.Column + 1);
     writer.WriteNumber("endLineNumber", End.Line + 1);
     writer.WriteNumber("endColumn", End.Column + 1);
     writer.WriteEndObject();
 }
Ejemplo n.º 5
0
        private void sendState(System.Collections.Generic.Dictionary <string, object> properties)
        {
            if (coreWebView2 == null)
            {
                return;
            }

            using (var stream = new System.IO.MemoryStream())
            {
                using (var writer = new System.Text.Json.Utf8JsonWriter(stream))
                {
                    writer.WriteStartObject();
                    writer.WriteString("type", "state");
                    writer.WriteStartObject("state");

                    foreach (var pair in properties)
                    {
                        if (pair.Value == null)
                        {
                            writer.WriteNull(pair.Key);
                        }
                        else if (pair.Value is double)
                        {
                            writer.WriteNumber(pair.Key, (double)pair.Value);
                        }
                        else if (pair.Value is string)
                        {
                            writer.WriteString(pair.Key, (string)pair.Value);
                        }
                        else
                        {
                            throw new System.ArgumentException("Unsupported type for property '" + pair.Key + "'.");
                        }
                    }

                    writer.WriteEndObject();
                    writer.WriteEndObject();
                }

                string json = System.Text.Encoding.UTF8.GetString(stream.ToArray());
                coreWebView2.PostWebMessageAsJson(json);
            }
        }
Ejemplo n.º 6
0
 internal void WriteToJson(System.Text.Json.Utf8JsonWriter writer)
 {
     //对应monaco.SignatureInformation
     writer.WriteStartObject();
     writer.WriteString("label", Label);
     writer.WriteString("documentation", StructuredDocumentation.SummaryText);
     writer.WritePropertyName("parameters");
     writer.WriteStartArray();
     foreach (var item in Parameters)
     {
         item.WriteToJson(writer);
     }
     writer.WriteEndArray();
     writer.WriteEndObject();
 }
Ejemplo n.º 7
0
        /// <summary>
        /// The ping command returns an acknowledgement, so that clients can test the connection status and latency.
        /// </summary>
        public async Task Ping(CancellationToken cancellationToken = default)
        {
            jsonBuffer.Clear();
            jsonWriter.Reset();
            jsonWriter.WriteStartObject();
            var requestId = WriteHeader(jsonWriter, "ping");

            WriteFooter(jsonWriter);
            jsonWriter.WriteEndObject();
            jsonWriter.Flush();
            var _ = await SendReceiveAsync(requestId, jsonBuffer.WrittenMemory, cancellationToken);
        }
Ejemplo n.º 8
0
 protected override void WriteFooter(System.Text.Json.Utf8JsonWriter writer)
 {
     writer.WriteEndObject();
     writer.WriteEndArray();
 }