aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirawi2021-10-23 12:52:18 +0000
committerGitHub2021-10-23 12:52:18 +0000
commit0cb5e0b2caba61bbcf6f57ce58506882766d5eea (patch)
treed87c92ab1fcf969be89847e69ff4b370dfb4f2e7
parent0f886af4b993c836bb2d522f6e036362593ff8b8 (diff)
log syntax highlighting init errors (#895)
-rw-r--r--Cargo.lock1
-rw-r--r--helix-core/Cargo.toml1
-rw-r--r--helix-core/src/syntax.rs4
-rw-r--r--helix-term/src/main.rs7
-rw-r--r--helix-view/src/clipboard.rs22
-rw-r--r--helix-view/src/editor.rs6
6 files changed, 22 insertions, 19 deletions
diff --git a/Cargo.lock b/Cargo.lock
index aa6fb141..ad12adf9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -363,6 +363,7 @@ dependencies = [
"arc-swap",
"etcetera",
"helix-syntax",
+ "log",
"once_cell",
"quickcheck",
"regex",
diff --git a/helix-core/Cargo.toml b/helix-core/Cargo.toml
index 93ebb133..84d029d2 100644
--- a/helix-core/Cargo.toml
+++ b/helix-core/Cargo.toml
@@ -27,6 +27,7 @@ once_cell = "1.8"
arc-swap = "1"
regex = "1"
+log = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.5"
diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs
index f4b4535b..281a70f9 100644
--- a/helix-core/src/syntax.rs
+++ b/helix-core/src/syntax.rs
@@ -186,7 +186,9 @@ impl LanguageConfiguration {
if highlights_query.is_empty() {
None
} else {
- let language = get_language(&crate::RUNTIME_DIR, &self.language_id).ok()?;
+ let language = get_language(&crate::RUNTIME_DIR, &self.language_id)
+ .map_err(|e| log::info!("{}", e))
+ .ok()?;
let config = HighlightConfiguration::new(
language,
&highlights_query,
diff --git a/helix-term/src/main.rs b/helix-term/src/main.rs
index 180dacd1..2589a375 100644
--- a/helix-term/src/main.rs
+++ b/helix-term/src/main.rs
@@ -16,6 +16,11 @@ fn setup_logging(logpath: PathBuf, verbosity: u64) -> Result<()> {
};
// Separate file config so we can include year, month and day in file logs
+ let file = std::fs::OpenOptions::new()
+ .write(true)
+ .create(true)
+ .truncate(true)
+ .open(logpath)?;
let file_config = fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
@@ -26,7 +31,7 @@ fn setup_logging(logpath: PathBuf, verbosity: u64) -> Result<()> {
message
))
})
- .chain(fern::log_file(logpath)?);
+ .chain(file);
base_config.chain(file_config).apply()?;
diff --git a/helix-view/src/clipboard.rs b/helix-view/src/clipboard.rs
index a11224ac..a492652d 100644
--- a/helix-view/src/clipboard.rs
+++ b/helix-view/src/clipboard.rs
@@ -116,7 +116,7 @@ pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
}
} else {
#[cfg(target_os = "windows")]
- return Box::new(provider::WindowsProvider::new());
+ return Box::new(provider::WindowsProvider::default());
#[cfg(not(target_os = "windows"))]
return Box::new(provider::NopProvider::new());
@@ -145,15 +145,15 @@ mod provider {
use anyhow::{bail, Context as _, Result};
use std::borrow::Cow;
+ #[cfg(not(target_os = "windows"))]
#[derive(Debug)]
pub struct NopProvider {
buf: String,
primary_buf: String,
}
+ #[cfg(not(target_os = "windows"))]
impl NopProvider {
- #[allow(dead_code)]
- // Only dead_code on Windows.
pub fn new() -> Self {
Self {
buf: String::new(),
@@ -162,6 +162,7 @@ mod provider {
}
}
+ #[cfg(not(target_os = "windows"))]
impl ClipboardProvider for NopProvider {
fn name(&self) -> Cow<str> {
Cow::Borrowed("none")
@@ -186,19 +187,8 @@ mod provider {
}
#[cfg(target_os = "windows")]
- #[derive(Debug)]
- pub struct WindowsProvider {
- selection_buf: String,
- }
-
- #[cfg(target_os = "windows")]
- impl WindowsProvider {
- pub fn new() -> Self {
- Self {
- selection_buf: String::new(),
- }
- }
- }
+ #[derive(Default, Debug)]
+ pub struct WindowsProvider;
#[cfg(target_os = "windows")]
impl ClipboardProvider for WindowsProvider {
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs
index 813c86fd..51fe8a42 100644
--- a/helix-view/src/editor.rs
+++ b/helix-view/src/editor.rs
@@ -294,7 +294,11 @@ impl Editor {
self.language_servers
.get(language)
.map_err(|e| {
- log::error!("Failed to get LSP, {}, for `{}`", e, language.scope())
+ log::error!(
+ "Failed to initialize the LSP for `{}` {{ {} }}",
+ language.scope(),
+ e
+ )
})
.ok()
});