Skip to content

Commit

Permalink
after reset highlight configs
Browse files Browse the repository at this point in the history
reset the syntax in the existing docs
  • Loading branch information
dzhou121 committed Aug 7, 2024
1 parent 2639cc9 commit 8fc6fd5
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 34 deletions.
82 changes: 57 additions & 25 deletions lapce-app/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ use lapce_core::{
command::{EditCommand, FocusCommand},
directory::Directory,
meta,
syntax::highlight::reset_highlight_configs,
syntax::{highlight::reset_highlight_configs, Syntax},
};
use lapce_rpc::{
core::{CoreMessage, CoreNotification},
Expand Down Expand Up @@ -3710,30 +3710,6 @@ pub fn launch() {
}
}

{
let cx = Scope::new();
let send = create_ext_action(cx, |_| {
reset_highlight_configs();
});
std::thread::spawn(move || {
use self::grammars::*;
match find_grammar_release() {
Ok(release) => {
if let Err(e) = fetch_grammars(&release) {
trace!(TraceLevel::ERROR, "failed to fetch grammars: {e}");
}
if let Err(e) = fetch_queries(&release) {
trace!(TraceLevel::ERROR, "failed to fetch grammars: {e}");
}
}
Err(e) => {
trace!(TraceLevel::ERROR, "failed to obtain release info: {e}");
}
}
send(());
});
}

#[cfg(feature = "updater")]
crate::update::cleanup();

Expand Down Expand Up @@ -3804,6 +3780,62 @@ pub fn launch() {
});
}

{
let cx = Scope::new();
let app_data = app_data.clone();
let send = create_ext_action(cx, move |updated| {
if updated {
trace!(
TraceLevel::INFO,
"grammar or query got updated, reset highlight configs"
);
reset_highlight_configs();
for (_, window) in app_data.windows.get_untracked() {
for (_, tab) in window.window_tabs.get_untracked() {
for (_, doc) in tab.main_split.docs.get_untracked() {
doc.syntax.update(|syntaxt| {
*syntaxt = Syntax::from_language(syntaxt.language);
});
doc.trigger_syntax_change(None);
}
}
}
}
});
std::thread::spawn(move || {
use self::grammars::*;
let updated = match find_grammar_release() {
Ok(release) => {
let mut updated = false;
match fetch_grammars(&release) {
Err(e) => {
trace!(
TraceLevel::ERROR,
"failed to fetch grammars: {e}"
);
}
Ok(u) => updated |= u,
}
match fetch_queries(&release) {
Err(e) => {
trace!(
TraceLevel::ERROR,
"failed to fetch grammars: {e}"
);
}
Ok(u) => updated |= u,
}
updated
}
Err(e) => {
trace!(TraceLevel::ERROR, "failed to obtain release info: {e}");
false
}
};
send(updated);
});
}

#[cfg(feature = "updater")]
{
let (tx, rx) = crossbeam_channel::bounded(1);
Expand Down
18 changes: 9 additions & 9 deletions lapce-app/src/app/grammars.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,37 +61,37 @@ pub fn find_grammar_release() -> Result<ReleaseInfo> {
Ok(release.to_owned())
}

pub fn fetch_grammars(release: &ReleaseInfo) -> Result<()> {
pub fn fetch_grammars(release: &ReleaseInfo) -> Result<bool> {
let dir = Directory::grammars_directory()
.ok_or_else(|| anyhow!("can't get grammars directory"))?;

let file_name = format!("grammars-{}-{}", env::consts::OS, env::consts::ARCH);

download_release(dir, release, &file_name)?;
let updated = download_release(dir, release, &file_name)?;

trace!(TraceLevel::INFO, "Successfully downloaded grammars");

Ok(())
Ok(updated)
}

pub fn fetch_queries(release: &ReleaseInfo) -> Result<()> {
pub fn fetch_queries(release: &ReleaseInfo) -> Result<bool> {
let dir = Directory::queries_directory()
.ok_or_else(|| anyhow!("can't get queries directory"))?;

let file_name = "queries";

download_release(dir, release, file_name)?;
let updated = download_release(dir, release, file_name)?;

trace!(TraceLevel::INFO, "Successfully downloaded queries");

Ok(())
Ok(updated)
}

fn download_release(
dir: PathBuf,
release: &ReleaseInfo,
file_name: &str,
) -> Result<()> {
) -> Result<bool> {
if !dir.exists() {
fs::create_dir(&dir)?;
}
Expand All @@ -105,7 +105,7 @@ fn download_release(
};

if release_version == current_version {
return Ok(());
return Ok(false);
}

for asset in &release.assets {
Expand Down Expand Up @@ -137,5 +137,5 @@ fn download_release(
fs::write(dir.join("version"), &release_version)?;
}
}
Ok(())
Ok(true)
}

0 comments on commit 8fc6fd5

Please sign in to comment.