diff --git a/.gitignore b/.gitignore
index 9bcd7463ee3..ef8ec634051 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,5 +54,6 @@ venv/
.venv/
CLAUDE.md
+AGENTS.md
.claude/
spec/
diff --git a/src/cpp/session/include/session/prefs/UserPrefValues.hpp b/src/cpp/session/include/session/prefs/UserPrefValues.hpp
index 90f85d6a44e..2bff968b79e 100644
--- a/src/cpp/session/include/session/prefs/UserPrefValues.hpp
+++ b/src/cpp/session/include/session/prefs/UserPrefValues.hpp
@@ -78,9 +78,12 @@ namespace prefs {
#define kPanesTabSet1 "tabSet1"
#define kPanesTabSet2 "tabSet2"
#define kPanesHiddenTabSet "hiddenTabSet"
+#define kPanesSidebar "sidebar"
#define kPanesConsoleLeftOnTop "console_left_on_top"
#define kPanesConsoleRightOnTop "console_right_on_top"
#define kPanesAdditionalSourceColumns "additional_source_columns"
+#define kPanesSidebarVisible "sidebar_visible"
+#define kPanesSidebarLocation "sidebar_location"
#define kAllowSourceColumns "allow_source_columns"
#define kUseSpacesForTab "use_spaces_for_tab"
#define kNumSpacesForTab "num_spaces_for_tab"
diff --git a/src/cpp/session/resources/schema/user-prefs-schema.json b/src/cpp/session/resources/schema/user-prefs-schema.json
index 9916d232423..fc372b5c6f5 100644
--- a/src/cpp/session/resources/schema/user-prefs-schema.json
+++ b/src/cpp/session/resources/schema/user-prefs-schema.json
@@ -162,7 +162,7 @@
"description": "Allocation of panes to quadrants.",
"items": {
"type": "string",
- "enum": ["Source", "Console", "TabSet1", "TabSet2", "HiddenTabSet"]
+ "enum": ["Source", "Console", "TabSet1", "TabSet2", "HiddenTabSet", "Sidebar"]
}
},
"tabSet1": {
@@ -186,6 +186,13 @@
"type": "string"
}
},
+ "sidebar": {
+ "type": "array",
+ "description": "The panes included in the sidebar.",
+ "items": {
+ "type": "string"
+ }
+ },
"console_left_on_top": {
"type": "boolean",
"description": "Whether the console is on top when it is on the left side of the workbench."
@@ -198,6 +205,16 @@
"type": "integer",
"default": 0,
"description": "The number of columns of full source columns."
+ },
+ "sidebar_visible": {
+ "type": "boolean",
+ "default": false,
+ "description": "Whether the sidebar is visible."
+ },
+ "sidebar_location": {
+ "type": "string",
+ "enum": ["left", "right", "satellite"],
+ "description": "The location of the sidebar."
}
},
"default": {
@@ -206,13 +223,17 @@
"Console",
"TabSet1",
"TabSet2",
- "HiddenTabSet"],
- "tabSet1": ["Environment", "History", "Connections", "Build", "VCS", "Tutorial", "Presentation"],
- "tabSet2": ["Files", "Plots", "Packages", "Help", "Viewer", "Presentations"],
+ "HiddenTabSet",
+ "Sidebar"],
+ "tabSet1": ["Environment", "Connections", "Build", "VCS", "Tutorial", "Presentation"],
+ "tabSet2": ["Plots", "Packages", "Help", "Viewer", "Presentations"],
"hiddenTabSet": [],
+ "sidebar": ["Files", "History"],
"console_left_on_top": false,
"console_right_on_top": true,
- "additional_source_columns": 0
+ "additional_source_columns": 0,
+ "sidebar_visible": false,
+ "sidebar_location": "right"
},
"description": "Layout of panes in the RStudio workbench."
},
diff --git a/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants.java b/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants.java
index 9f4dab36f96..c7f63e24686 100644
--- a/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants.java
+++ b/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants.java
@@ -536,6 +536,24 @@ public interface CmdConstants extends Constants {
@DefaultStringValue("") // $NON-NLS-1$
String projectSweaveOptionsDesc();
+ // showSidebar
+ @DefaultStringValue("Show Si_debar") // $NON-NLS-1$
+ String showSidebarMenuLabel();
+
+ // hideSidebar
+ @DefaultStringValue("Hide Sideb_ar") // $NON-NLS-1$
+ String hideSidebarMenuLabel();
+
+ // toggleSidebar
+ @DefaultStringValue("Toggle Visibility of Sidebar") // $NON-NLS-1$
+ String toggleSidebarLabel();
+
+ // moveSidebar
+ @DefaultStringValue("Move Sidebar Left or Right") // $NON-NLS-1$
+ String moveSidebarLabel();
+ @DefaultStringValue("Move Si_debar Left or Right") // $NON-NLS-1$
+ String moveSidebarMenuLabel();
+
// showToolbar
@DefaultStringValue("Show _Toolbar") // $NON-NLS-1$
String showToolbarMenuLabel();
diff --git a/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_en.properties b/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_en.properties
index 1d629915dda..ee27e1c6e8f 100644
--- a/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_en.properties
+++ b/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_en.properties
@@ -350,6 +350,19 @@ projectSweaveOptionsButtonLabel =
projectSweaveOptionsMenuLabel =
projectSweaveOptionsDesc =
+# showSidebar
+showSidebarMenuLabel = Show Si_debar
+
+# hideSidebar
+hideSidebarMenuLabel = Hide Sideb_ar
+
+# toggleSidebar
+toggleSidebarLabel = Toggle Visibility of Sidebar
+
+# moveSidebar
+moveSidebarLabel = Move Sidebar Left or Right
+moveSidebarMenuLabel = Move Si_debar Left or Right
+
# showToolbar
showToolbarMenuLabel = Show _Toolbar
diff --git a/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_fr.properties b/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_fr.properties
index 0f0d4b2acba..34d0c2146cb 100644
--- a/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_fr.properties
+++ b/src/gwt/src/org/rstudio/studio/client/workbench/commands/CmdConstants_fr.properties
@@ -350,6 +350,20 @@ projectSweaveOptionsButtonLabel =
projectSweaveOptionsMenuLabel =
projectSweaveOptionsDesc =
+# showSidebar
+showSidebarMenuLabel = Afficher la barre latérale
+
+# hideSidebar
+hideSidebarMenuLabel = Cacher la barre latérale
+
+# toggleSidebar
+toggleSidebarLabel = Basculer la visibilité de la barre latérale
+toggleSidebarMenuLabel = Basculer la barre latérale
+
+# moveSidebar
+moveSidebarLabel = Déplacer la barre latérale à gauche ou à droite
+moveSidebarMenuLabel = Déplacer la barre latérale à gauche ou à droite
+
# showToolbar
showToolbarMenuLabel = Afficher la barre d\u0027ou_tils
diff --git a/src/gwt/src/org/rstudio/studio/client/workbench/commands/Commands.cmd.xml b/src/gwt/src/org/rstudio/studio/client/workbench/commands/Commands.cmd.xml
index 7b14251545c..05716b92d8a 100644
--- a/src/gwt/src/org/rstudio/studio/client/workbench/commands/Commands.cmd.xml
+++ b/src/gwt/src/org/rstudio/studio/client/workbench/commands/Commands.cmd.xml
@@ -280,6 +280,8 @@ See `/src/gwt/tools/i18n-helpers/README.md`.