Add setting for hiding the status_bar.cursor_position_button (#36288)

Release Notes:

- Added an option for the status_bar.cursor_position_button. Setting to
`false` will hide the button. It defaults to `true`.

This builds off the recent work to hide the language selection button
(https://github.com/zed-industries/zed/pull/33977). I tried to follow
that pattern, and to pick a clear name for the option, but any
feedback/change is welcome.

---------

Co-authored-by: zumbalogy <3770982+zumbalogy@users.noreply.github.com>
This commit is contained in:
zumbalogy 2025-08-16 08:19:38 +02:00 committed by GitHub
parent e664a9bc48
commit f5f14111ef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 24 additions and 2 deletions

View file

@ -1256,7 +1256,9 @@
// Status bar-related settings.
"status_bar": {
// Whether to show the active language button in the status bar.
"active_language_button": true
"active_language_button": true,
// Whether to show the cursor position button in the status bar.
"cursor_position_button": true
},
// Settings specific to the terminal
"terminal": {

View file

@ -132,6 +132,10 @@ pub struct StatusBar {
///
/// Default: true
pub active_language_button: bool,
/// Whether to show the cursor position button in the status bar.
///
/// Default: true
pub cursor_position_button: bool,
}
#[derive(Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)]
@ -585,6 +589,10 @@ pub struct StatusBarContent {
///
/// Default: true
pub active_language_button: Option<bool>,
/// Whether to show the cursor position button in the status bar.
///
/// Default: true
pub cursor_position_button: Option<bool>,
}
// Toolbar related settings

View file

@ -1,4 +1,4 @@
use editor::{Editor, MultiBufferSnapshot};
use editor::{Editor, EditorSettings, MultiBufferSnapshot};
use gpui::{App, Entity, FocusHandle, Focusable, Subscription, Task, WeakEntity};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
@ -209,6 +209,13 @@ impl CursorPosition {
impl Render for CursorPosition {
fn render(&mut self, _window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
if !EditorSettings::get_global(cx)
.status_bar
.cursor_position_button
{
return div();
}
div().when_some(self.position, |el, position| {
let mut text = format!(
"{}{FILE_ROW_COLUMN_DELIMITER}{}",

View file

@ -1284,6 +1284,7 @@ Each option controls displaying of a particular toolbar element. If all elements
```json
"status_bar": {
"active_language_button": true,
"cursor_position_button": true
},
```

View file

@ -316,6 +316,10 @@ TBD: Centered layout related settings
// Clicking the button brings up the language selector.
// Defaults to true.
"active_language_button": true,
// Show/hide a button that displays the cursor's position.
// Clicking the button brings up an input for jumping to a line and column.
// Defaults to true.
"cursor_position_button": true,
},
```