-
Not sure what's going on here. .dir-locals.el: ((yaml-mode
. ((eglot-workspace-configuration
. (:yaml (:schemas (:Kubernetes "*.yaml")
:schemaStore (:enable t))))))) Editing apiVersion: v1
kind: ${1|MutatingWebhookConfiguration,ValidatingWebhookConfiguration,DaemonSet,Deployment,ReplicaSet,StatefulSet,HorizontalPodAutoscaler,Scale,HorizontalPodAutoscaler,HorizontalPodAutoscaler,CronJob,Job,CronJob,Lease,ComponentStatus,ConfigMap,Endpoints,LimitRange,Namespace,Node,PersistentVolume,PersistentVolumeClaim,Pod,PodTemplate,ReplicationController,ResourceQuota,Secret,Service,ServiceAccount,FlowSchema,PriorityLevelConfiguration,Ingress,IngressClass,NetworkPolicy,Eviction,PodDisruptionBudget,PodDisruptionBudget,PodSecurityPolicy,ClusterRole,Role,ClusterRole,Role,DeleteOptions,Status,APIService|} Here's the relevant events, starting when the completion is selected (i.e., typed [client-notification] Thu Aug 1 16:06:39 2024:
(:jsonrpc "2.0" :method "textDocument/didChange" :params
(:textDocument
(:uri "file:///Users/tmiller/projects/scratch/yamlls/foo.yaml" :version 45)
:contentChanges
[(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 0))
:rangeLength 0 :text "k")
(:range
(:start
(:line 1 :character 1)
:end
(:line 1 :character 1))
:rangeLength 0 :text "i")]))
[client-request] (id:20) Thu Aug 1 16:06:39 2024:
(:jsonrpc "2.0" :id 20 :method "textDocument/completion" :params
(:textDocument
(:uri "file:///Users/tmiller/projects/scratch/yamlls/foo.yaml")
:position
(:line 1 :character 2)
:context
(:triggerKind 1)))
[server-reply] (id:20) Thu Aug 1 16:06:39 2024:
(:jsonrpc "2.0" :id 20 :result
(:items
[(:kind 10 :label "kind" :insertText "kind: ${1|MutatingWebhookConfiguration,ValidatingWebhookConfiguration,DaemonSet,Deployment,ReplicaSet,StatefulSet,HorizontalPodAutoscaler,Scale,HorizontalPodAutoscaler,HorizontalPodAutoscaler,CronJob,Job,CronJob,Lease,ComponentStatus,ConfigMap,Endpoints,LimitRange,Namespace,Node,PersistentVolume,PersistentVolumeClaim,Pod,PodTemplate,ReplicationController,ResourceQuota,Secret,Service,ServiceAccount,FlowSchema,PriorityLevelConfiguration,Ingress,IngressClass,NetworkPolicy,Eviction,PodDisruptionBudget,PodDisruptionBudget,PodSecurityPolicy,ClusterRole,Role,ClusterRole,Role,DeleteOptions,Status,APIService|}" :insertTextFormat 2 :documentation "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "kind: ${1|MutatingWebhookConfiguration,ValidatingWebhookConfiguration,DaemonSet,Deployment,ReplicaSet,StatefulSet,HorizontalPodAutoscaler,Scale,HorizontalPodAutoscaler,HorizontalPodAutoscaler,CronJob,Job,CronJob,Lease,ComponentStatus,ConfigMap,Endpoints,LimitRange,Namespace,Node,PersistentVolume,PersistentVolumeClaim,Pod,PodTemplate,ReplicationController,ResourceQuota,Secret,Service,ServiceAccount,FlowSchema,PriorityLevelConfiguration,Ingress,IngressClass,NetworkPolicy,Eviction,PodDisruptionBudget,PodDisruptionBudget,PodSecurityPolicy,ClusterRole,Role,ClusterRole,Role,DeleteOptions,Status,APIService|}"))
(:kind 10 :label "metadata" :insertText "metadata:\n " :insertTextFormat 2 :documentation "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "metadata:\n "))
(:kind 10 :label "webhooks" :insertText "webhooks:\n - admissionReviewVersions:\n - ${1}\n clientConfig:\n $2\n name: $3\n sideEffects: $4" :insertTextFormat 2 :documentation "Webhooks is a list of webhooks and the affected resources and operations." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "webhooks:\n - admissionReviewVersions:\n - ${1}\n clientConfig:\n $2\n name: $3\n sideEffects: $4"))
(:kind 10 :label "spec" :insertText "spec:\n selector:\n $1\n template:\n $2" :insertTextFormat 2 :documentation "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n selector:\n $1\n template:\n $2"))
(:kind 10 :label "status" :insertText "status:\n currentNumberScheduled: $1\n desiredNumberScheduled: $2\n numberMisscheduled: $3\n numberReady: $4" :insertTextFormat 2 :documentation "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "status:\n currentNumberScheduled: $1\n desiredNumberScheduled: $2\n numberMisscheduled: $3\n numberReady: $4"))
(:kind 10 :label "status" :insertText "status:\n " :insertTextFormat 2 :documentation "Most recently observed status of the Deployment." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "status:\n "))
(:kind 10 :label "spec" :insertText "spec:\n selector:\n " :insertTextFormat 2 :documentation "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n selector:\n "))
(:kind 10 :label "status" :insertText "status:\n replicas: " :insertTextFormat 2 :documentation "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "status:\n replicas: "))
(:kind 10 :label "spec" :insertText "spec:\n selector:\n $1\n serviceName: $2\n template:\n $3" :insertTextFormat 2 :documentation "Spec defines the desired identities of pods in this set." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n selector:\n $1\n serviceName: $2\n template:\n $3"))
(:kind 10 :label "name" :insertText "name: " :insertTextFormat 2 :documentation "Name of the referent." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "name: "))
(:kind 10 :label "uid" :insertText "uid: " :insertTextFormat 2 :documentation "UID of the referent." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "uid: "))
(:kind 10 :label "spec" :insertText "spec:\n maxReplicas: $1\n scaleTargetRef:\n kind: $2\n name: $3" :insertTextFormat 2 :documentation "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n maxReplicas: $1\n scaleTargetRef:\n kind: $2\n name: $3"))
(:kind 10 :label "status" :insertText "status:\n currentReplicas: $1\n desiredReplicas: $2" :insertTextFormat 2 :documentation "current information about the autoscaler." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "status:\n currentReplicas: $1\n desiredReplicas: $2"))
(:kind 10 :label "spec" :insertText "spec:\n " :insertTextFormat 2 :documentation "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n "))
(:kind 10 :label "status" :insertText "status:\n conditions:\n - status: $1\n type: $2\n currentReplicas: $3\n desiredReplicas: $4" :insertTextFormat 2 :documentation "status is the current information about the autoscaler." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "status:\n conditions:\n - status: $1\n type: $2\n currentReplicas: $3\n desiredReplicas: $4"))
(:kind 10 :label "spec" :insertText "spec:\n jobTemplate:\n $1\n schedule: $2" :insertTextFormat 2 :documentation "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n jobTemplate:\n $1\n schedule: $2"))
(:kind 10 :label "spec" :insertText "spec:\n template:\n " :insertTextFormat 2 :documentation "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n template:\n "))
(:kind 10 :label "conditions" :insertText "conditions:\n - status: $1\n type: $2" :insertTextFormat 2 :documentation "List of component conditions observed" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "conditions:\n - status: $1\n type: $2"))
(:kind 10 :label "binaryData" :insertText "binaryData:\n " :insertTextFormat 2 :documentation "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "binaryData:\n "))
(:kind 10 :label "data" :insertText "data:\n " :insertTextFormat 2 :documentation "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "data:\n "))
(:kind 10 :label "immutable" :insertText "immutable: " :insertTextFormat 2 :documentation "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "immutable: "))
(:kind 10 :label "subsets" :insertText "subsets:\n - " :insertTextFormat 2 :documentation "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "subsets:\n - "))
(:kind 10 :label "spec" :insertText "spec:\n limits:\n - type: " :insertTextFormat 2 :documentation "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n limits:\n - type: "))
(:kind 10 :label "fieldPath" :insertText "fieldPath: " :insertTextFormat 2 :documentation "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "fieldPath: "))
(:kind 10 :label "namespace" :insertText "namespace: " :insertTextFormat 2 :documentation "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "namespace: "))
(:kind 10 :label "resourceVersion" :insertText "resourceVersion: " :insertTextFormat 2 :documentation "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "resourceVersion: "))
(:kind 10 :label "spec" :insertText "spec:\n containers:\n - name: " :insertTextFormat 2 :documentation "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n containers:\n - name: "))
(:kind 10 :label "template" :insertText "template:\n " :insertTextFormat 2 :documentation "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "template:\n "))
(:kind 10 :label "stringData" :insertText "stringData:\n " :insertTextFormat 2 :documentation "stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "stringData:\n "))
(:kind 10 :label "type" :insertText "type: " :insertTextFormat 2 :documentation "Used to facilitate programmatic handling of secret data." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "type: "))
(:kind 10 :label "automountServiceAccountToken" :insertText "automountServiceAccountToken: " :insertTextFormat 2 :documentation "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "automountServiceAccountToken: "))
(:kind 10 :label "imagePullSecrets" :insertText "imagePullSecrets:\n - " :insertTextFormat 2 :documentation "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "imagePullSecrets:\n - "))
(:kind 10 :label "secrets" :insertText "secrets:\n - " :insertTextFormat 2 :documentation "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "secrets:\n - "))
(:kind 10 :label "spec" :insertText "spec:\n priorityLevelConfiguration:\n name: " :insertTextFormat 2 :documentation "`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n priorityLevelConfiguration:\n name: "))
(:kind 10 :label "spec" :insertText "spec:\n type: " :insertTextFormat 2 :documentation "`spec` is the specification of the desired behavior of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n type: "))
(:kind 10 :label "spec" :insertText "spec:\n podSelector:\n " :insertTextFormat 2 :documentation "Specification of the desired behavior for this NetworkPolicy." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n podSelector:\n "))
(:kind 10 :label "deleteOptions" :insertText "deleteOptions:\n " :insertTextFormat 2 :documentation "DeleteOptions may be provided" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "deleteOptions:\n "))
(:kind 10 :label "status" :insertText "status:\n currentHealthy: $1\n desiredHealthy: $2\n disruptionsAllowed: $3\n expectedPods: $4" :insertTextFormat 2 :documentation "Most recently observed status of the PodDisruptionBudget." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "status:\n currentHealthy: $1\n desiredHealthy: $2\n disruptionsAllowed: $3\n expectedPods: $4"))
(:kind 10 :label "spec" :insertText "spec:\n fsGroup:\n $1\n runAsUser:\n rule: $2\n seLinux:\n rule: $3\n supplementalGroups:\n $4" :insertTextFormat 2 :documentation "spec defines the policy enforced." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n fsGroup:\n $1\n runAsUser:\n rule: $2\n seLinux:\n rule: $3\n supplementalGroups:\n $4"))
(:kind 10 :label "aggregationRule" :insertText "aggregationRule:\n " :insertTextFormat 2 :documentation "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "aggregationRule:\n "))
(:kind 10 :label "rules" :insertText "rules:\n - verbs:\n - ${1}" :insertTextFormat 2 :documentation "Rules holds all the PolicyRules for this ClusterRole" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "rules:\n - verbs:\n - ${1}"))
(:kind 10 :label "dryRun" :insertText "dryRun:\n - ${1}" :insertTextFormat 2 :documentation "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "dryRun:\n - ${1}"))
(:kind 10 :label "gracePeriodSeconds" :insertText "gracePeriodSeconds: ${1:0}" :insertTextFormat 2 :documentation "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "gracePeriodSeconds: ${1:0}"))
(:kind 10 :label "orphanDependents" :insertText "orphanDependents: " :insertTextFormat 2 :documentation "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "orphanDependents: "))
(:kind 10 :label "preconditions" :insertText "preconditions:\n " :insertTextFormat 2 :documentation "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "preconditions:\n "))
(:kind 10 :label "propagationPolicy" :insertText "propagationPolicy: " :insertTextFormat 2 :documentation "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "propagationPolicy: "))
(:kind 10 :label "fieldsType" :insertText "fieldsType: " :insertTextFormat 2 :documentation "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "fieldsType: "))
(:kind 10 :label "fieldsV1" :insertText "fieldsV1:\n " :insertTextFormat 2 :documentation "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "fieldsV1:\n "))
(:kind 10 :label "manager" :insertText "manager: " :insertTextFormat 2 :documentation "Manager is an identifier of the workflow managing these fields." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "manager: "))
(:kind 10 :label "operation" :insertText "operation: " :insertTextFormat 2 :documentation "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "operation: "))
(:kind 10 :label "subresource" :insertText "subresource: " :insertTextFormat 2 :documentation "Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "subresource: "))
(:kind 10 :label "time" :insertText "time: " :insertTextFormat 2 :documentation "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "time: "))
(:kind 10 :label "code" :insertText "code: ${1:0}" :insertTextFormat 2 :documentation "Suggested HTTP return code for this status, 0 if not set." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "code: ${1:0}"))
(:kind 10 :label "details" :insertText "details:\n " :insertTextFormat 2 :documentation "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "details:\n "))
(:kind 10 :label "message" :insertText "message: " :insertTextFormat 2 :documentation "A human-readable description of the status of this operation." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "message: "))
(:kind 10 :label "reason" :insertText "reason: " :insertTextFormat 2 :documentation "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "reason: "))
(:kind 10 :label "status" :insertText "status: " :insertTextFormat 2 :documentation "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "status: "))
(:kind 10 :label "spec" :insertText "spec:\n groupPriorityMinimum: $1\n versionPriority: $2" :insertTextFormat 2 :documentation "Spec contains information for locating and communicating with a server" :textEdit
(:range
(:start
(:line 1 :character 0)
:end
(:line 1 :character 2))
:newText "spec:\n groupPriorityMinimum: $1\n versionPriority: $2"))]
:isIncomplete :json-false)) Everything else seems to function correctly; key and value completions show up in for completion-at-point (and in corfu), snippets are inserted (e.g., completing the Pod |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 2 replies
-
FWIW, |
Beta Was this translation helpful? Give feedback.
-
Poking around a bit more, I see similar things happening with other JSON schemas, though nothing quite as egregious as the example above. So it's clearly something with the language server. If anyone has any ideas as to /what/, I'm all ears. |
Beta Was this translation helpful? Give feedback.
-
I /think/ the expectation is the client should take the response and construct a new completion prompt, but IDK the LSP spec all that well. |
Beta Was this translation helpful? Give feedback.
-
Edited the original with the correct client-notification, client-request, and server-reply. |
Beta Was this translation helpful? Give feedback.
-
Ok, sorted it out. eglot is sending |
Beta Was this translation helpful? Give feedback.
Ok, sorted it out. eglot is sending
snippetSupport: false
but yamlls is returning the snippet anyway.redhat-developer/yaml-language-server#161