All Projects → alfasoftware → astra

alfasoftware / astra

Licence: Apache-2.0 License
Astra: a Java tool for analysing and refactoring Java source code

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to astra

Typo3 Rector
Rector for TYPO3
Stars: ✭ 107 (+205.71%)
Mutual labels:  refactoring, ast
Rewrite
Semantic code search and transformation
Stars: ✭ 134 (+282.86%)
Mutual labels:  refactoring, ast
Piranha
A tool for refactoring code related to feature flag APIs
Stars: ✭ 1,840 (+5157.14%)
Mutual labels:  refactoring, ast
rector-laravel
Rector upgrades rules for Laravel
Stars: ✭ 75 (+114.29%)
Mutual labels:  ast
hack-tools
"Кали-заменитель". Располагает в себе большое количество утилит для взлома.
Stars: ✭ 39 (+11.43%)
Mutual labels:  good-first-issue
gogrep
Syntax-aware Go code search, based on the mvdan/gogrep
Stars: ✭ 25 (-28.57%)
Mutual labels:  ast
lpegrex
Parse programming languages syntax into an AST using PEGs with ease (LPeg Extension).
Stars: ✭ 32 (-8.57%)
Mutual labels:  ast
C90Compiler-EIE2
C90 to MIPS I Compiler done as a coursework for EE2-15
Stars: ✭ 15 (-57.14%)
Mutual labels:  ast
parse-function
(!! moved to tunnckoCore/opensource multi-package repository !!) 🔱 Parse a function into an object using espree, acorn or babylon parsers. Extensible through Smart Plugins.
Stars: ✭ 37 (+5.71%)
Mutual labels:  ast
hxjsonast
Parse JSON into position-aware AST with Haxe!
Stars: ✭ 28 (-20%)
Mutual labels:  ast
js-ziju
Compile javascript to LLVM IR, x86 assembly and self interpreting
Stars: ✭ 112 (+220%)
Mutual labels:  ast
node-typescript-parser
Parser for typescript (and javascript) files, that compiles those files and generates a human understandable AST.
Stars: ✭ 121 (+245.71%)
Mutual labels:  ast
DSA
Write DSA Codes into it
Stars: ✭ 18 (-48.57%)
Mutual labels:  good-first-issue
ruby ast visualizer
🌲 Ruby AST Visualizer. Based on Parser.
Stars: ✭ 28 (-20%)
Mutual labels:  ast
yode
Yode - Focused Code Editing
Stars: ✭ 28 (-20%)
Mutual labels:  ast
kolasu
Kotlin Language Support – AST Library
Stars: ✭ 45 (+28.57%)
Mutual labels:  ast
vast
A simple tool for vlang, generate v source file to AST json file
Stars: ✭ 23 (-34.29%)
Mutual labels:  ast
Dev-Geeks
Open Source Project
Stars: ✭ 16 (-54.29%)
Mutual labels:  good-first-issue
ember-template-rewrite
A utility for automatically refactoring Ember.js templates.
Stars: ✭ 16 (-54.29%)
Mutual labels:  refactoring
better-name
CLI tool to move JavaScript(ES2015) or TypeScript module files
Stars: ✭ 35 (+0%)
Mutual labels:  refactoring

Astra logo

License Build Status

What is Astra?

Astra is a Java tool for analysing and refactoring Java source code.

For example:

  • "References to type A should instead reference type B"
  • "Callers of method A should add an additional argument B"
  • "Find classes which are annotated with A"

Astra has been developed and tested at Alfa to improve the velocity at which large scale refactors may be performed.

How do I use Astra?

  • First, please see the Wiki!
  • Astra can be run as part of a Java application, using astra-core as a dependency and using the refactors it provides. For an illustration of how to do this, please see the README in astra-core. The code can be found in astra-example.
  • For cases needing a more bespoke approach, astra-core also provides an SPI for writing your own custom ASTOperations. See the astra-core README for further details.
  • For very simple cases, there is also a command line interface which exposes a small subset of Astra's refactoring operations. Please see astra-cli for more information.

Why would I use Astra?

A simple and common use case is renaming a method, and updating all the callers of that method so that they use the new name. Your IDE is often the best tool for the job, but sometimes this isn't possible. There may be so many modules that manually selecting and opening them is a real pain, or the overall size of the modules may mean that your IDE struggles to open them all at once. This means that sometimes it's easier to just add a new method, deprecate the old one, and leave all the existing callers. The same issues apply to many other refactors, such as renaming a type.

Astra can be used to make changes like these easily, and on a massive scale.

How does Astra work?

Please see How does Astra work? in the Wiki.

Technologies

  • Java 11
  • Eclipse JDT
  • JUnit
  • log4j

License

Astra is released under the Apache 2.0 License. Contributions are also made under this license, as per the GitHub terms of service.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].