Overview Version History Q & A Rating & Review
🕵️♀️ SmellScan-Pro
SmellScan-Pro is a 🔧 tool designed to scan the code and detect the design smells or violations of design principles. It evaluates language-independent design principles using language-specific semantic evidence.
Currently we release with Angular/TypeScript support, other languages will be added in subsequent releases.
🌟 Features
SmellScan-Pro is capable of detecting the following design smells in code:
Abstraction Smells
Imperative Abstraction 📚
Unnecessary Abstraction 📦
Unutilized Abstraction 🎯
Encapsulation Smells
Deficient Encapsulation 📉
Unexploited Encapsulation 🔐
Hierarchy Smells
Broken Hierarchy 🧩
Cyclic Hierarchy 🔁
Deep Hierarchy 🏞️
Multipath Hierarchy 🛤️
Rebellious Hierarchy 🚧
Wide Hierarchy 🌐
Missing Hierarchy ⛓️
Modularization Smells
Broken Modularization 🧱
Cyclic-Dependent Modularization 🔄
Insufficient Modularization 📊
Hub-like Modularization 🌀
🚀 Usage
To use SmellScan-Pro after installing the extension on VS Code, follow these steps:
Select and right-click the folder in the EXPLORER that you wish to scan. 📂
Go to the 'Start SmellScan' group in the context menu and select the language. 🖱️
A file named designSmells.csv will be generated containing the report. 📄
For enhanced visualization, a Sunburst chart will also be generated. 🌅
🤝 Contributing
We welcome contributions, issue reports, and feature requests! 🎉
To report issues, please visit:
🆚 VS Code Compatibility
SmellScan-Pro supports VS Code version 1.88.0 or later. 🎯
🔄 Change log
Version 1.0.0
Initial release of SmellScan-Pro with Angular/TypeScript support.
Added support for detecting 16 design smells across 4 categories:
Abstraction : Imperative Abstraction, Unnecessary Abstraction, Unutilized Abstraction
Encapsulation : Deficient Encapsulation, Unexploited Encapsulation
Hierarchy : Broken Hierarchy, Cyclic Hierarchy, Deep Hierarchy, Multipath Hierarchy, Rebellious Hierarchy, Wide Hierarchy, Missing Hierarchy
Modularization : Broken Modularization, Cyclic-Dependent Modularization, Insufficient Modularization, Hub-like Modularization