mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 01:16:18 +04:00
log syntax highlighting init errors (#895)
This commit is contained in:
parent
0f886af4b9
commit
0cb5e0b2ca
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -363,6 +363,7 @@ dependencies = [
|
||||
"arc-swap",
|
||||
"etcetera",
|
||||
"helix-syntax",
|
||||
"log",
|
||||
"once_cell",
|
||||
"quickcheck",
|
||||
"regex",
|
||||
|
@ -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"
|
||||
|
@ -186,7 +186,9 @@ fn initialize_highlight(&self, scopes: &[String]) -> Option<Arc<HighlightConfigu
|
||||
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,
|
||||
|
@ -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()?;
|
||||
|
||||
|
@ -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 @@ pub fn new() -> Self {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
impl ClipboardProvider for NopProvider {
|
||||
fn name(&self) -> Cow<str> {
|
||||
Cow::Borrowed("none")
|
||||
@ -186,19 +187,8 @@ fn set_contents(&mut self, content: String, clipboard_type: ClipboardType) -> Re
|
||||
}
|
||||
|
||||
#[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 {
|
||||
|
@ -294,7 +294,11 @@ pub fn open(&mut self, path: PathBuf, action: Action) -> Result<DocumentId, Erro
|
||||
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()
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user