feat: add highlighting to editor
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
tab_spaces = 2
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
use iced::{
|
use iced::{
|
||||||
Element, Length, Theme,
|
Element, Length, Theme, highlighter,
|
||||||
widget::{container, markdown, row, text_editor},
|
widget::{container, markdown, row, text_editor},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -9,6 +9,7 @@ pub fn view<'a>(file: &'a File, mode: Mode, font_size: u32) -> Element<'a, Messa
|
|||||||
match mode {
|
match mode {
|
||||||
Mode::Edit => {
|
Mode::Edit => {
|
||||||
let editor = text_editor(file.content())
|
let editor = text_editor(file.content())
|
||||||
|
.highlight(file.extension().unwrap_or("txt"), highlighter::Theme::Base16Ocean)
|
||||||
.size(font_size)
|
.size(font_size)
|
||||||
.height(Length::Fill)
|
.height(Length::Fill)
|
||||||
.on_action(Message::Edit);
|
.on_action(Message::Edit);
|
||||||
@@ -21,8 +22,7 @@ pub fn view<'a>(file: &'a File, mode: Mode, font_size: u32) -> Element<'a, Messa
|
|||||||
|
|
||||||
let settings = markdown::Settings::with_text_size(font_size, style);
|
let settings = markdown::Settings::with_text_size(font_size, style);
|
||||||
|
|
||||||
let markdown_preview =
|
let markdown_preview = markdown::view(file.markdown(), settings).map(Message::LinkClicked);
|
||||||
markdown::view(file.markdown(), settings).map(Message::LinkClicked);
|
|
||||||
|
|
||||||
container(row![markdown_preview])
|
container(row![markdown_preview])
|
||||||
.height(Length::Fill)
|
.height(Length::Fill)
|
||||||
|
|||||||
+8
-1
@@ -1,4 +1,4 @@
|
|||||||
use std::path::PathBuf;
|
use std::{ffi, path::{Path, PathBuf}};
|
||||||
|
|
||||||
use iced::widget::{markdown, text_editor};
|
use iced::widget::{markdown, text_editor};
|
||||||
|
|
||||||
@@ -58,6 +58,13 @@ impl File {
|
|||||||
self.path = path;
|
self.path = path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn extension(&self) -> Option<&str> {
|
||||||
|
self.path
|
||||||
|
.as_deref()
|
||||||
|
.and_then(Path::extension)
|
||||||
|
.and_then(ffi::OsStr::to_str)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn display_name(&self) -> &str {
|
pub fn display_name(&self) -> &str {
|
||||||
self.path
|
self.path
|
||||||
.as_deref()
|
.as_deref()
|
||||||
|
|||||||
Reference in New Issue
Block a user