Skip to content

Commit e462705

Browse files
committed
Send OpenFile request with kind field
1 parent 8a51524 commit e462705

File tree

6 files changed

+43
-16
lines changed

6 files changed

+43
-16
lines changed

crates/amalthea/src/comm/data_explorer_comm.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ pub struct ColumnSelection {
692692
}
693693

694694
/// Possible values for ColumnDisplayType
695-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
695+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
696696
pub enum ColumnDisplayType {
697697
#[serde(rename = "number")]
698698
#[strum(to_string = "number")]
@@ -740,7 +740,7 @@ pub enum ColumnDisplayType {
740740
}
741741

742742
/// Possible values for Condition in RowFilter
743-
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
743+
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
744744
pub enum RowFilterCondition {
745745
#[serde(rename = "and")]
746746
#[strum(to_string = "and")]
@@ -752,7 +752,7 @@ pub enum RowFilterCondition {
752752
}
753753

754754
/// Possible values for RowFilterType
755-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
755+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
756756
pub enum RowFilterType {
757757
#[serde(rename = "between")]
758758
#[strum(to_string = "between")]
@@ -800,7 +800,7 @@ pub enum RowFilterType {
800800
}
801801

802802
/// Possible values for Op in FilterComparison
803-
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
803+
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
804804
pub enum FilterComparisonOp {
805805
#[serde(rename = "=")]
806806
#[strum(to_string = "=")]
@@ -828,7 +828,7 @@ pub enum FilterComparisonOp {
828828
}
829829

830830
/// Possible values for TextSearchType
831-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
831+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
832832
pub enum TextSearchType {
833833
#[serde(rename = "contains")]
834834
#[strum(to_string = "contains")]
@@ -852,7 +852,7 @@ pub enum TextSearchType {
852852
}
853853

854854
/// Possible values for ColumnFilterType
855-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
855+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
856856
pub enum ColumnFilterType {
857857
#[serde(rename = "text_search")]
858858
#[strum(to_string = "text_search")]
@@ -864,7 +864,7 @@ pub enum ColumnFilterType {
864864
}
865865

866866
/// Possible values for ColumnProfileType
867-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
867+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
868868
pub enum ColumnProfileType {
869869
#[serde(rename = "null_count")]
870870
#[strum(to_string = "null_count")]
@@ -892,7 +892,7 @@ pub enum ColumnProfileType {
892892
}
893893

894894
/// Possible values for Method in ColumnHistogramParams
895-
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
895+
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
896896
pub enum ColumnHistogramParamsMethod {
897897
#[serde(rename = "sturges")]
898898
#[strum(to_string = "sturges")]
@@ -912,7 +912,7 @@ pub enum ColumnHistogramParamsMethod {
912912
}
913913

914914
/// Possible values for Kind in TableSelection
915-
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
915+
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
916916
pub enum TableSelectionKind {
917917
#[serde(rename = "single_cell")]
918918
#[strum(to_string = "single_cell")]
@@ -940,7 +940,7 @@ pub enum TableSelectionKind {
940940
}
941941

942942
/// Possible values for ExportFormat
943-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
943+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
944944
pub enum ExportFormat {
945945
#[serde(rename = "csv")]
946946
#[strum(to_string = "csv")]
@@ -956,7 +956,7 @@ pub enum ExportFormat {
956956
}
957957

958958
/// Possible values for SupportStatus
959-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
959+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
960960
pub enum SupportStatus {
961961
#[serde(rename = "unsupported")]
962962
#[strum(to_string = "unsupported")]

crates/amalthea/src/comm/help_comm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use serde::Deserialize;
1212
use serde::Serialize;
1313

1414
/// Possible values for Kind in ShowHelp
15-
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
15+
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
1616
pub enum ShowHelpKind {
1717
#[serde(rename = "html")]
1818
#[strum(to_string = "html")]

crates/amalthea/src/comm/plot_comm.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ pub struct PlotRenderSettings {
6464
}
6565

6666
/// Possible values for PlotUnit
67-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
67+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
6868
pub enum PlotUnit {
6969
#[serde(rename = "pixels")]
7070
#[strum(to_string = "pixels")]
@@ -76,7 +76,7 @@ pub enum PlotUnit {
7676
}
7777

7878
/// Possible values for PlotRenderFormat
79-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display)]
79+
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
8080
pub enum PlotRenderFormat {
8181
#[serde(rename = "png")]
8282
#[strum(to_string = "png")]

crates/amalthea/src/comm/ui_comm.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,18 @@ pub struct Range {
9898
pub end: Position
9999
}
100100

101+
/// Possible values for Kind in OpenEditor
102+
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, strum_macros::Display, strum_macros::EnumString)]
103+
pub enum OpenEditorKind {
104+
#[serde(rename = "path")]
105+
#[strum(to_string = "path")]
106+
Path,
107+
108+
#[serde(rename = "uri")]
109+
#[strum(to_string = "uri")]
110+
Uri
111+
}
112+
101113
/// Parameters for the DidChangePlotsRenderSettings method.
102114
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
103115
pub struct DidChangePlotsRenderSettingsParams {
@@ -133,6 +145,10 @@ pub struct OpenEditorParams {
133145

134146
/// The column number to jump to
135147
pub column: i64,
148+
149+
/// How to interpret the 'file' argument: as a file path or as a URI. If
150+
/// omitted, defaults to 'path'.
151+
pub kind: OpenEditorKind,
136152
}
137153

138154
/// Parameters for the NewDocument method.

crates/ark/src/modules/positron/frontend-methods.R

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@
3939
column = 0L
4040
) {
4141
# Don't normalize if that's an `ark:` URI
42-
if (!grepl("^ark:", file)) {
42+
if (grepl("^ark:", file)) {
43+
kind <- "uri"
44+
} else {
45+
kind <- "path"
4346
file <- normalizePath(file)
4447
}
4548

@@ -51,7 +54,7 @@
5154
column <- 0L
5255
}
5356

54-
.ps.Call("ps_ui_navigate_to_file", file, line, column)
57+
.ps.Call("ps_ui_navigate_to_file", file, line, column, kind)
5558
}
5659

5760
#' @export

crates/ark/src/ui/events.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
//
66
//
77

8+
use std::str::FromStr;
9+
10+
use amalthea::comm::ui_comm::OpenEditorKind;
811
use amalthea::comm::ui_comm::OpenEditorParams;
912
use amalthea::comm::ui_comm::OpenWithSystemParams;
1013
use amalthea::comm::ui_comm::OpenWorkspaceParams;
@@ -63,11 +66,16 @@ pub unsafe extern "C-unwind" fn ps_ui_navigate_to_file(
6366
file: SEXP,
6467
line: SEXP,
6568
column: SEXP,
69+
uri: SEXP,
6670
) -> anyhow::Result<SEXP> {
71+
let kind: String = RObject::view(uri).try_into()?;
72+
let kind = OpenEditorKind::from_str(&kind)?;
73+
6774
let params = OpenEditorParams {
6875
file: RObject::view(file).try_into()?,
6976
line: RObject::view(line).try_into()?,
7077
column: RObject::view(column).try_into()?,
78+
kind,
7179
};
7280

7381
let event = UiFrontendEvent::OpenEditor(params);

0 commit comments

Comments
 (0)