By workspace, I mean - I need to save the state of my open buffers (possibly in a user specified workspace file) and quickly switch to another set of open buffers, e.g. to conti
projectile mode may achieve what you what:
To switch buffers within a project: projectile-switch-to-buffer
To switch projects: projectile-switch-to-project
I have something like this:
(global-set-key (kbd "C-x b") '(λ ()
(interactive)
(if (projectile-project-p)
(call-interactively 'projectile-switch-to-buffer)
(call-interactively 'ivy-switch-buffer))))
(global-set-key (kbd "C-x B") 'ivy-switch-buffer)