Skip to content

Add support for selectable pattern presets (e.g. BCE) and project-specific config in Atom Material Icons #489

@FlyingV111

Description

@FlyingV111

Is your feature request related to a problem? Please describe.
Atom Material Icons already allows users to define custom icon mappings based on filename patterns. While powerful, the current configuration process is manual and global – making it inconvenient for teams or for working across multiple projects that follow different architectural patterns (e.g. BCE, MVC, CQRS). Especially for common naming conventions like *Boundary, *Control, *Entity, setting this up from scratch each time is time-consuming.

Describe the solution you'd like
It would be great to have:

  1. Selectable pattern presets for known architectural patterns such as:

    • BCE (Boundary, Control, Entity)
    • MVC
    • MVVM
    • CQRS
      These could be enabled via checkboxes or dropdowns in the plugin settings.
  2. Optional project-level configuration support, e.g. via a .atom-icons.json or .material-icons.json file in the root of the project. This would:

    • Allow teams to share icon mappings via version control
    • Make settings portable and reproducible across machines
    • Support per-project overrides of global settings

Describe alternatives you've considered

  • Using the current global custom mapping UI (works, but not reusable across projects or team members)
  • Writing documentation so all devs manually configure the same rules (error-prone)
  • Skipping icon customization (hurts clarity in structured architectures)

Additional context
This would be especially useful for teams using Clean Architecture or Domain-Driven Design, where class roles are semantically important but not distinguishable through extensions alone.

Example:

project-root/
├── .material-icons.json   ← contains pattern-to-icon mapping
└── src/
    ├── boundary   ← shows network icon
    ├── control    ← shows gear icon
    └── entity     ← shows database icon

These additions would greatly improve the developer experience, reduce setup effort, and promote consistent usage across teams.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions