Skip to content

Reimplement classes in S7 #6364

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 93 commits into
base: main
Choose a base branch
from
Open

Conversation

teunbrand
Copy link
Collaborator

@teunbrand teunbrand commented Mar 17, 2025

This PR aims to fix a large part of #6352.

Briefly it implements the following S7 classes:

  • class_ggplot
  • class_ggplot_built
  • class_mapping
  • class_labels
  • class_theme

I've put in the usual extractors and replacers ([, [[, $ and their <- methods) for the ggplot/ggplot_built classes for backwards compatibility. The code internally now uses @ though, so that we can deprecate the usual extractors/replacers later.

Copy link
Member

@thomasp85 thomasp85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - do you want a revdepcheck before merging?

@teunbrand
Copy link
Collaborator Author

do you want a revdepcheck

Yes please! ☺️

teunbrand added 8 commits May 20, 2025 17:42
Merge branch 'main' into S7_objects

# Conflicts:
#	DESCRIPTION
#	NAMESPACE
#	R/guide-.R
#	R/guide-axis-theta.R
#	R/labels.R
#	R/theme-elements.R
#	R/theme.R
#	man/is_tests.Rd
Merge branch 'main' into S7_objects

# Conflicts:
#	tests/testthat/test-layer.R
@teunbrand
Copy link
Collaborator Author

I'm having a hard time getting this to go over smoothly with some widely used packages, or even my own extensions for that matter. Perhaps we need some aggressive backward compatibility for ggplot_build(), ggplot_gtable(), ggplot_add() and element_grob().

Copy link
Member

@thomasp85 thomasp85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants