diff --git a/CHANGELOG.md b/CHANGELOG.md
index e31fa27cad..07da85bef1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
## Unreleased
+### Features/Changes
+
+### Bug Fixes
+- Fix markdown syntax highlighting
+
+## 0.4.1
+
### Features/Changes
- Add fedora builds
- Finish tree sitter dynamic libary support by downloading from https://github.com/lapce/tree-sitter-grammars
diff --git a/Cargo.lock b/Cargo.lock
index f08869645e..8627ad1830 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2906,7 +2906,7 @@ dependencies = [
[[package]]
name = "lapce"
-version = "0.4.0"
+version = "0.4.1"
dependencies = [
"lapce-app",
"lapce-proxy",
@@ -2914,7 +2914,7 @@ dependencies = [
[[package]]
name = "lapce-app"
-version = "0.4.0"
+version = "0.4.1"
dependencies = [
"Inflector",
"alacritty_terminal",
@@ -2971,14 +2971,14 @@ dependencies = [
"tracing-subscriber",
"unicode-width",
"url",
- "windows-sys 0.52.0",
+ "windows-sys 0.36.1",
"zip",
"zstd",
]
[[package]]
name = "lapce-core"
-version = "0.4.0"
+version = "0.4.1"
dependencies = [
"ahash",
"anyhow",
@@ -3006,7 +3006,7 @@ dependencies = [
[[package]]
name = "lapce-proxy"
-version = "0.4.0"
+version = "0.4.1"
dependencies = [
"alacritty_terminal",
"anyhow",
@@ -3055,7 +3055,7 @@ dependencies = [
[[package]]
name = "lapce-rpc"
-version = "0.4.0"
+version = "0.4.1"
dependencies = [
"anyhow",
"crossbeam-channel",
diff --git a/Cargo.toml b/Cargo.toml
index 658c97f93d..9e04e14786 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -23,7 +23,7 @@ path = "lapce-proxy/src/bin/lapce-proxy.rs"
members = ["lapce-app", "lapce-proxy", "lapce-rpc", "lapce-core"]
[workspace.package]
-version = "0.4.0"
+version = "0.4.1"
edition = "2021"
rust-version = "1.77.0"
license = "Apache-2.0"
diff --git a/defaults/dark-theme.toml b/defaults/dark-theme.toml
index 478d501a64..8d3c6ce0c4 100644
--- a/defaults/dark-theme.toml
+++ b/defaults/dark-theme.toml
@@ -68,6 +68,14 @@ dim-text = "#5C6370"
"variable.other.member" = "$red"
"tag" = "$blue"
+"markup.heading" = "$red"
+"markup.bold" = "$orange"
+"markup.italic" = "$orange"
+"markup.list" = "$orange"
+"markup.link.url" = "$blue"
+"markup.link.label" = "$purple"
+"markup.link.text" = "$purple"
+
"bracket.color.1" = "$blue"
"bracket.color.2" = "$yellow"
"bracket.color.3" = "$purple"
diff --git a/defaults/light-theme.toml b/defaults/light-theme.toml
index 5cef4861b2..570e6f75b2 100644
--- a/defaults/light-theme.toml
+++ b/defaults/light-theme.toml
@@ -74,6 +74,14 @@ dim-text = "#A0A1A7"
"variable.other.member" = "$red"
"tag" = "$blue"
+"markup.heading" = "$red"
+"markup.bold" = "$orange"
+"markup.italic" = "$orange"
+"markup.list" = "$orange"
+"markup.link.url" = "$blue"
+"markup.link.label" = "$purple"
+"markup.link.text" = "$purple"
+
"bracket.color.1" = "$blue"
"bracket.color.2" = "$yellow"
"bracket.color.3" = "$purple"
diff --git a/extra/linux/dev.lapce.lapce.metainfo.xml b/extra/linux/dev.lapce.lapce.metainfo.xml
index 99d322aff3..3c6ad2db59 100644
--- a/extra/linux/dev.lapce.lapce.metainfo.xml
+++ b/extra/linux/dev.lapce.lapce.metainfo.xml
@@ -30,6 +30,6 @@
-
+
diff --git a/extra/macos/Lapce.app/Contents/Info.plist b/extra/macos/Lapce.app/Contents/Info.plist
index 2f6f78e208..5896e12833 100644
--- a/extra/macos/Lapce.app/Contents/Info.plist
+++ b/extra/macos/Lapce.app/Contents/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.4.0
+ 0.4.1
CFBundleSupportedPlatforms
MacOSX
diff --git a/extra/windows/wix/lapce.wxs b/extra/windows/wix/lapce.wxs
index b2d0e4c600..305f835e22 100644
--- a/extra/windows/wix/lapce.wxs
+++ b/extra/windows/wix/lapce.wxs
@@ -1,6 +1,6 @@
-
+
diff --git a/lapce-app/src/command.rs b/lapce-app/src/command.rs
index 1ea715861c..014e5d7e15 100644
--- a/lapce-app/src/command.rs
+++ b/lapce-app/src/command.rs
@@ -191,6 +191,10 @@ pub enum LapceWorkbenchCommand {
#[strum(message = "Reveal in File Tree")]
RevealInFileTree,
+ #[strum(serialize = "run_in_terminal")]
+ #[strum(message = "Run in Terminal")]
+ RunInTerminal,
+
#[strum(serialize = "reveal_active_file_in_file_explorer")]
#[strum(message = "Reveal Active File in File Explorer")]
RevealActiveFileInFileExplorer,
diff --git a/lapce-app/src/editor.rs b/lapce-app/src/editor.rs
index bf7655523e..7739f82420 100644
--- a/lapce-app/src/editor.rs
+++ b/lapce-app/src/editor.rs
@@ -2660,6 +2660,7 @@ impl EditorData {
Some(CommandKind::Workbench(
LapceWorkbenchCommand::PaletteCommand,
)),
+ Some(CommandKind::Workbench(LapceWorkbenchCommand::RunInTerminal)),
]
} else {
vec![
@@ -3292,7 +3293,7 @@ pub(crate) fn compute_screen_lines(
let is_right = diff_info.is_right;
let line_y = |info: VLineInfo<()>, vline_y: usize| -> usize {
- vline_y - info.rvline.line_index * line_height
+ vline_y.saturating_sub(info.rvline.line_index * line_height)
};
while let Some(change) = changes.next() {
diff --git a/lapce-app/src/window_tab.rs b/lapce-app/src/window_tab.rs
index ed487a9542..716e16c3b6 100644
--- a/lapce-app/src/window_tab.rs
+++ b/lapce-app/src/window_tab.rs
@@ -1394,6 +1394,38 @@ impl WindowTabData {
editor_data.call_hierarchy(self.clone());
}
}
+ RunInTerminal => {
+ if let Some(editor_data) =
+ self.main_split.active_editor.get_untracked()
+ {
+ let name = editor_data.word_at_cursor();
+ if !name.is_empty() {
+ let mut args_str = name.split(" ");
+ let program = args_str.next().map(|x| x.to_string()).unwrap();
+ let args: Vec = args_str.map(|x| x.to_string()).collect();
+ let args = if args.is_empty() {
+ None
+ } else {
+ Some(args)
+ };
+
+ let config = RunDebugConfig {
+ ty: None,
+ name,
+ program,
+ args,
+ cwd: None,
+ env: None,
+ prelaunch: None,
+ debug_command: None,
+ dap_id: Default::default(),
+ };
+ self.common
+ .internal_command
+ .send(InternalCommand::RunAndDebug { mode: RunDebugMode::Run, config });
+ }
+ }
+ }
}
}
diff --git a/lapce-core/src/language.rs b/lapce-core/src/language.rs
index 53c9ae4991..292f66d9ee 100644
--- a/lapce-core/src/language.rs
+++ b/lapce-core/src/language.rs
@@ -713,7 +713,7 @@ const LANGUAGES: &[SyntaxProperties] = &[
SyntaxProperties {
id: LapceLanguage::Dockerfile,
indent: Indent::space(2),
- files: &["dockerfile", "containerfile"],
+ files: &["Dockerfile", "Containerfile"],
extensions: &["containerfile", "dockerfile"],
comment: comment_properties!("#"),
tree_sitter: TreeSitterProperties::DEFAULT,
@@ -1069,8 +1069,8 @@ const LANGUAGES: &[SyntaxProperties] = &[
SyntaxProperties {
id: LapceLanguage::Just,
indent: Indent::tab(),
- files: &[],
- extensions: &[],
+ files: &["justfile", "Justfile", ".justfile", ".Justfile"],
+ extensions: &["just"],
comment: comment_properties!(),
tree_sitter: TreeSitterProperties::DEFAULT,
},
@@ -1169,8 +1169,8 @@ const LANGUAGES: &[SyntaxProperties] = &[
extensions: &[],
comment: comment_properties!(),
tree_sitter: TreeSitterProperties {
- grammar: Some("markdown"),
- grammar_fn: None,
+ grammar: Some("markdown_inline"),
+ grammar_fn: Some("markdown_inline"),
query: Some("markdown.inline"),
code_glance: (DEFAULT_CODE_GLANCE_LIST, DEFAULT_CODE_GLANCE_IGNORE_LIST),
sticky_headers: &[],
@@ -1567,7 +1567,7 @@ const LANGUAGES: &[SyntaxProperties] = &[
SyntaxProperties {
id: LapceLanguage::Toml,
indent: Indent::space(2),
- files: &[],
+ files: &["Cargo.lock"],
extensions: &["toml"],
comment: comment_properties!("#"),
tree_sitter: TreeSitterProperties::DEFAULT,
@@ -1683,20 +1683,14 @@ impl LapceLanguage {
}
pub fn from_path_raw(path: &Path) -> Option {
- let filename = path
- .file_stem()
- .and_then(|s| s.to_str().map(|s| s.to_lowercase()));
+ let filename = path.file_name().and_then(|s| s.to_str());
let extension = path
.extension()
.and_then(|s| s.to_str().map(|s| s.to_lowercase()));
// NOTE: This is a linear search. It is assumed that this function
// isn't called in any tight loop.
for properties in LANGUAGES {
- if properties
- .files
- .iter()
- .any(|f| Some(*f) == filename.as_deref())
- {
+ if properties.files.iter().any(|f| Some(*f) == filename) {
return Some(properties.id);
}
if properties
diff --git a/lapce-core/src/style.rs b/lapce-core/src/style.rs
index fed6642423..9f6a5cd211 100644
--- a/lapce-core/src/style.rs
+++ b/lapce-core/src/style.rs
@@ -33,6 +33,14 @@ pub const SCOPES: &[&str] = &[
"conceal",
"none",
"tag",
+ "markup.bold",
+ "markup.italic",
+ "markup.list",
+ "markup.quote",
+ "markup.heading",
+ "markup.link.url",
+ "markup.link.label",
+ "markup.link.text",
];
pub fn line_styles(
diff --git a/lapce.spec b/lapce.spec
index 0a6761d063..9996f3b8ca 100644
--- a/lapce.spec
+++ b/lapce.spec
@@ -1,5 +1,5 @@
Name: lapce-git
-Version: 0.4.0.{{{ git_dir_version }}}
+Version: 0.4.1.{{{ git_dir_version }}}
Release: 1
Summary: Lightning-fast and Powerful Code Editor written in Rust
License: Apache-2.0