A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/edi.rs')
-rw-r--r--src/edi.rs65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/edi.rs b/src/edi.rs
new file mode 100644
index 0000000..d825409
--- /dev/null
+++ b/src/edi.rs
@@ -0,0 +1,65 @@
+use std::path::PathBuf;
+use std::sync::Arc;
+use std::thread::JoinHandle;
+
+use lsp_types::request::*;
+use lsp_types::*;
+use tokio::sync::oneshot::Sender;
+
+use crate::bar::Bar;
+use crate::hov::Hovr;
+use crate::lsp::{Client, RequestError, Rq, RqS};
+use crate::text::TextArea;
+use crate::{ClickHistory, CompletionState, Hist, State};
+#[derive(Default)]
+pub struct Editor {
+ text: TextArea,
+ origin: Option<PathBuf>,
+ state: State,
+ bar: Bar,
+ workspace: Option<PathBuf>,
+ lsp: Option<(
+ &'static Client,
+ JoinHandle<()>,
+ Sender<Arc<winit::window::Window>>,
+ )>,
+ tree: Option<Vec<PathBuf>>,
+ hovering: Rq<Hovr, Option<Hovr>, (usize, usize), anyhow::Error>,
+ document_highlights: Rq<
+ Vec<DocumentHighlight>,
+ Vec<DocumentHighlight>,
+ (),
+ RequestError<DocumentHighlightRequest>,
+ >,
+ complete: CompletionState,
+ sig_help: Rq<
+ (SignatureHelp, usize, Option<usize>),
+ Option<SignatureHelp>,
+ (),
+ RequestError<SignatureHelpRequest>,
+ >, // vo, lines
+ semantic_tokens: Rq<
+ Box<[SemanticToken]>,
+ Box<[SemanticToken]>,
+ (),
+ RequestError<SemanticTokensFullRequest>,
+ >,
+ diag: Rq<String, Option<String>, (), anyhow::Error>,
+ inlay: Rq<
+ Vec<InlayHint>,
+ Vec<InlayHint>,
+ (),
+ RequestError<lsp_request!("textDocument/inlayHint")>,
+ >,
+ def: Rq<
+ LocationLink,
+ Option<GotoDefinitionResponse>,
+ (usize, usize),
+ RequestError<lsp_request!("textDocument/definition")>,
+ >,
+ chist: ClickHistory,
+ hist: Hist,
+ mtime: Option<std::time::SystemTime>,
+}
+
+impl Editor {}