{"id":16431156,"url":"https://github.com/rexebin/classlens","last_synced_at":"2025-11-19T11:04:00.677Z","repository":{"id":143774564,"uuid":"129943620","full_name":"rexebin/classlens","owner":"rexebin","description":"An VSCode CodeLens Extension showing class hierarchy.","archived":false,"fork":false,"pushed_at":"2018-06-18T15:24:36.000Z","size":5657,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-25T09:47:01.014Z","etag":null,"topics":["classlens","codelens","extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rexebin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-17T17:49:26.000Z","updated_at":"2025-02-21T09:46:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"444275c6-10e4-4ec1-8390-1368679fcabd","html_url":"https://github.com/rexebin/classlens","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rexebin/classlens","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexebin%2Fclasslens","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexebin%2Fclasslens/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexebin%2Fclasslens/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexebin%2Fclasslens/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rexebin","download_url":"https://codeload.github.com/rexebin/classlens/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexebin%2Fclasslens/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285231776,"owners_count":27136520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-19T02:00:05.673Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classlens","codelens","extension"],"created_at":"2024-10-11T08:29:18.828Z","updated_at":"2025-11-19T11:04:00.661Z","avatar_url":"https://github.com/rexebin.png","language":"TypeScript","funding_links":["https://www.paypal.me/rexebin"],"categories":[],"sub_categories":[],"readme":"# ClassLens\n\nClassLens shows class's relationships with its interfaces and parent class in the form of CodeLens\n\n![ClassLens](./classlens.gif \"Showcase\")\n\nI switch from WebStorm to vscode and find myself missing a feature miserably: the ability to see which members in a class are overrides to a base class and which members are interface implementations with a glance, plus the ability to navigate to the parent member quickly. Failing to find anything in the Marketplace, I finally developed this extension **ClassLens**, just to do what WebStorm does in in the form of CodeLens in vscode.\n\nAs the name implies, ClassLens marks the following members in an class in the form of Codelens, when vscode CodeLens is enabled:\n\n1.  any class member that is an implementations of the class's interfaces.\n2.  any class member that overrides base class' member.\n\nClassLens also allows you to quickly navigate to the parent member by clicking on the CodeLens. File will be opened side by side by default. You can change the behaviour by adding this configuration to `User Settings`:\n\n```\n\"classLens.openSideBySide\": false\n```\n\n# Limitations\n\n1.  ClassLens does not support batch import, for example:\n\n    ```\n    import * as Layout from '@your-project/layout';\n\n    export class ClassName extends Layout.BaseClass implements Layout.LayoutInterface {\n\n    }\n    ```\n\n    I may fix this if there is high demand in the future.\n\n1.  ClassLens supports namespaces partially. It supports class structures within the same namespace. It does not support extends/implements class/interfaces from other namespaces. The reason is vscode ignore these symbols when performing symbol lookups. And at the moment (1.23) vscode returns empty object arrays when look up for definitions for these symbols in the extension. I have not found a good solution yet.\n\n1.  ClassLens also may not support multiple level of parent classes/interfaces i.e. parent class extending other class and interfaces extend other interfaces. I may fix this point if if there is high demand for it in the future.\n\n# Non Codelens Alternative\n\nIf you prefer Codelens to be disabled for absolute tidiness, install **_Class IO_** instead. **_Class IO_** does the same thing but is not a codelens extension. It decorates members and provide definitions and a command to go to parent members.\n\n# Performance\n\nClassLens is a TypeScript and JavaScript Codelens extension, it requires CodeLens to be enabled to be triggered.\n\nWhen it comes to CodeLens extension, performance is a key issue because they influence each other.\n\nClassLens builds up a database alike cache as you develop your project. Therefore it will cost you hardly anything after it has seen all of your class structures.\n\nCaches will be saved to workspace state and each time you open vscode, ClassLens will recover the cache from workspace state.\n\nClassLens does not go and index your codebase like WebStorm does.\n\nIf you find Codelens show up really slow in your vscode, consider checking your extensions and try to disable any extensions that implement Codelens one by one, and see if Codelens' showing up speed is up.\n\n# Cache\n\nTo clean workspace cache:\n\nCTRL/CMD + P: then search for \"ClassLens: Clear Cache\".\n\nNote: Reset cache when ClassLens is updated and it is not working on files opened before.\n\n# Support\n\nDoesn't work or have a suggestion?\n\n[Raise an issue](https://github.com/rexebin/classlens/issues)\n\n[Submit a PR](https://github.com/rexebin/classlens/pulls)\n\nReally enjoying ClassLens?\n\n[Write a review](https://marketplace.visualstudio.com/items?itemName=rexebin.classlens#review-details)\n\nIn a giving mood?\n\n[Donate](https://www.paypal.me/rexebin)\n\nYour support is greatly appreciated!\n\n# Links\n\n[Github Repository](https://github.com/rexebin/classlens)\n\n[Install ClassLens from VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=rexebin.classlens)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexebin%2Fclasslens","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frexebin%2Fclasslens","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexebin%2Fclasslens/lists"}