Embed a plain text grammar and override settings for that too

This commit is contained in:
Antonio Scandurra 2021-11-29 18:01:51 +01:00
parent 2c17ae9aa6
commit 9d7039ed51
4 changed files with 25 additions and 1 deletions

View file

@ -518,7 +518,9 @@ impl Editor {
_: &workspace::OpenNew, _: &workspace::OpenNew,
cx: &mut ViewContext<Workspace>, cx: &mut ViewContext<Workspace>,
) { ) {
let buffer = cx.add_model(|cx| Buffer::new(0, "", cx)); let buffer = cx.add_model(|cx| {
Buffer::new(0, "", cx).with_language(Some(language::PLAIN_TEXT.clone()), None, cx)
});
workspace.add_item(BufferItemHandle(buffer), cx); workspace.add_item(BufferItemHandle(buffer), cx);
} }

View file

@ -1,6 +1,7 @@
use crate::HighlightMap; use crate::HighlightMap;
use anyhow::{anyhow, Result}; use anyhow::{anyhow, Result};
use gpui::{executor::Background, AppContext}; use gpui::{executor::Background, AppContext};
use lazy_static::lazy_static;
use lsp::LanguageServer; use lsp::LanguageServer;
use parking_lot::Mutex; use parking_lot::Mutex;
use serde::Deserialize; use serde::Deserialize;
@ -9,6 +10,19 @@ use theme::SyntaxTheme;
use tree_sitter::{self, Query}; use tree_sitter::{self, Query};
pub use tree_sitter::{Parser, Tree}; pub use tree_sitter::{Parser, Tree};
lazy_static! {
pub static ref PLAIN_TEXT: Arc<Language> = Arc::new(Language::new(
LanguageConfig {
name: "Plain Text".to_string(),
path_suffixes: Default::default(),
brackets: Default::default(),
line_comment: None,
language_server: None,
},
None,
));
}
#[derive(Default, Deserialize)] #[derive(Default, Deserialize)]
pub struct LanguageConfig { pub struct LanguageConfig {
pub name: String, pub name: String,

View file

@ -8,6 +8,7 @@ pub use self::{
highlight_map::{HighlightId, HighlightMap}, highlight_map::{HighlightId, HighlightMap},
language::{ language::{
BracketPair, Grammar, Language, LanguageConfig, LanguageRegistry, LanguageServerConfig, BracketPair, Grammar, Language, LanguageConfig, LanguageRegistry, LanguageServerConfig,
PLAIN_TEXT,
}, },
}; };
use anyhow::{anyhow, Result}; use anyhow::{anyhow, Result};

View file

@ -27,6 +27,13 @@ fn main() {
let theme = themes.get(DEFAULT_THEME_NAME).unwrap(); let theme = themes.get(DEFAULT_THEME_NAME).unwrap();
let settings = Settings::new("Inconsolata", &app.font_cache(), theme) let settings = Settings::new("Inconsolata", &app.font_cache(), theme)
.unwrap() .unwrap()
.with_overrides(
language::PLAIN_TEXT.name(),
settings::Override {
soft_wrap: Some(settings::SoftWrap::PreferredLineLength),
..Default::default()
},
)
.with_overrides( .with_overrides(
"Markdown", "Markdown",
settings::Override { settings::Override {