193 lines · 4.7 KB · Rust
RawDownload
use lsp::VersionedTextDocumentIdentifier;use serde::{Deserialize, Serialize}; pub enum CheckStatus {} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct CheckStatusParams {    pub local_checks_only: bool,} impl lsp::request::Request for CheckStatus {    type Params = CheckStatusParams;    type Result = SignInStatus;    const METHOD: &'static str = "checkStatus";} pub enum SignInInitiate {} #[derive(Debug, Serialize, Deserialize)]pub struct SignInInitiateParams {} #[derive(Debug, Serialize, Deserialize)]#[serde(tag = "status")]pub enum SignInInitiateResult {    AlreadySignedIn { user: String },    PromptUserDeviceFlow(PromptUserDeviceFlow),} #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct PromptUserDeviceFlow {    pub user_code: String,    pub verification_uri: String,} impl lsp::request::Request for SignInInitiate {    type Params = SignInInitiateParams;    type Result = SignInInitiateResult;    const METHOD: &'static str = "signInInitiate";} pub enum SignInConfirm {} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct SignInConfirmParams {    pub user_code: String,} #[derive(Debug, Serialize, Deserialize)]#[serde(tag = "status")]pub enum SignInStatus {    #[serde(rename = "OK")]    Ok {        user: Option<String>,    },    MaybeOk {        user: String,    },    AlreadySignedIn {        user: String,    },    NotAuthorized {        user: String,    },    NotSignedIn,} impl lsp::request::Request for SignInConfirm {    type Params = SignInConfirmParams;    type Result = SignInStatus;    const METHOD: &'static str = "signInConfirm";} pub enum SignOut {} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct SignOutParams {} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct SignOutResult {} impl lsp::request::Request for SignOut {    type Params = SignOutParams;    type Result = SignOutResult;    const METHOD: &'static str = "signOut";} pub enum StatusNotification {} #[derive(Debug, Serialize, Deserialize)]pub struct StatusNotificationParams {    pub message: String,    pub status: String, // One of Normal/InProgress} impl lsp::notification::Notification for StatusNotification {    type Params = StatusNotificationParams;    const METHOD: &'static str = "statusNotification";} pub enum SetEditorInfo {} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct SetEditorInfoParams {    pub editor_info: EditorInfo,    pub editor_plugin_info: EditorPluginInfo,} impl lsp::request::Request for SetEditorInfo {    type Params = SetEditorInfoParams;    type Result = String;    const METHOD: &'static str = "setEditorInfo";} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct EditorInfo {    pub name: String,    pub version: String,} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct EditorPluginInfo {    pub name: String,    pub version: String,} pub enum NotifyAccepted {} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct NotifyAcceptedParams {    pub uuid: String,} impl lsp::request::Request for NotifyAccepted {    type Params = NotifyAcceptedParams;    type Result = String;    const METHOD: &'static str = "notifyAccepted";} pub enum NotifyRejected {} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct NotifyRejectedParams {    pub uuids: Vec<String>,} impl lsp::request::Request for NotifyRejected {    type Params = NotifyRejectedParams;    type Result = String;    const METHOD: &'static str = "notifyRejected";} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct NextEditSuggestions; #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct NextEditSuggestionsParams {    pub(crate) text_document: VersionedTextDocumentIdentifier,    pub(crate) position: lsp::Position,} #[derive(Clone, Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct NextEditSuggestion {    pub text: String,    pub text_document: VersionedTextDocumentIdentifier,    pub range: lsp::Range,    pub command: Option<lsp::Command>,} #[derive(Debug, Serialize, Deserialize)]#[serde(rename_all = "camelCase")]pub struct NextEditSuggestionsResult {    pub edits: Vec<NextEditSuggestion>,} impl lsp::request::Request for NextEditSuggestions {    type Params = NextEditSuggestionsParams;    type Result = NextEditSuggestionsResult;     const METHOD: &'static str = "textDocument/copilotInlineEdit";}