Skip to content

[FEATURE]: Full window & tabbed support #2

@aikhe

Description

@aikhe

Description

Add the ability to open Cake in a dedicated full window or a separate tab

Problem Statement

While floating windows and splits are efficient for brief interactions, they often feel cramped when dealing with verbose build logs or long-running processes.

Specifically, when working on complex tasks, I often need a "dedicated workspace" feel. Currently, I have to manually manage window layouts or use :only to achieve a full-screen experience, which disrupts the editor's original state and requires manual restoration afterward.

Desired Solution

I'd like to see a configuration option or specific commands that allow Cake to occupy the entire window frame or initialize in a completely new tab page.

Proposed Configuration:

require('cake').setup({
  mode = "full",
})
vim.api.nvim_create_user_command(
  "CakeFull",
  function(opts)
    local mode = (opts.args == "tabbed") and "tab" or "full"
    require("cake").open_full(mode)
  end,
  { nargs = "?" }
)

Expected changes:

Features:

  • Layout: Full-screen container that occupies the entire editor surface or a dedicated tab page.
  • Context Restoration: Automatically remembers and restores the previous window layout or tab when Cake is closed.
  • Tab Integration: Native Neovim tab support, allowing for seamless switching between the code workspace and the Cake environment using standard tab navigation.
  • Environment Isolation: Ensures the terminal and header UI are appropriately scaled to fill the expanded dimensions without breaking the layout.

API Usage:

  • require('cake').open_full(mode): opens the plugin UI in 'full' or 'tab' mode.
  • require('cake').toggle(): respects the full or tab mode if defined in the setup.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions