Add an import on symbol among the global imports.
Add an import on symbol among the global imports.
This patch is not reference, unlike removeImportee(Importee). It is only necessary to use this patch once per tree, duplicate symbols are ignored.
(Since version 0.6.0)
Add this importer to the global imports at the top of this file.
Add this importer to the global imports at the top of this file.
It is OK to pass in a quasiquote here. The importer has no attached semantic information, so it's not possible to deduplicate Importers.
(Since version 0.6.0)
Add the string toAdd to the first token of tree.
Add the string toAdd to the first token of tree. Does not remove tokens.
(Since version 0.6.0)
Add the string toAdd to the left side of token, while keeping token.
Add the string toAdd to the left side of token, while keeping token.
(Since version 0.6.0)
Add the string toAdd to the last token of tree.
Add the string toAdd to the last token of tree. Does not remove tokens.
(Since version 0.6.0)
Add the string toAdd to the right side of token, while keeping token.
Add the string toAdd to the right side of token, while keeping token.
(Since version 0.6.0)
Report a linter message.
Report a linter message.
To construct a LintMessage, start by creating a lint category. Example:
class MyLinter extends Rule { val divisionByZero = scalafix.LintCategory.error("Division by zero!") val divisionTree: scala.meta.Tree = ??? PatchOps.lint(divisionByZero.at(divisionTree.pos)) }
Each LintCategory is assigned a unique identifier, which is formatted as "RuleName.categoryID". The divisionByZero example would have the id "MyLinter.divisionByZero". A LintCategory has a default severity level (warning, error) that the user can override in .scalafix.conf.
(Since version 0.6.0)
Remove importees that resolve to symbol.
Remove importees that resolve to symbol.
Note, this patch is not reference, unlike removeImportee(Importee). It is only necessary to use this patch once per tree, duplicate symbols are ignored.
(Since version 0.6.0)
Remove this particular instance of Importee.
Remove this particular instance of Importee.
Handles tricky cases like trailing commas or curly braces.
Example, removeImportee(b) in import a.{b, c}
produces
import a.c
.
Note, importee
instance is by reference, so removing quasiquotes
(example, removeImportee(importee"b")
) does nothing.
(Since version 0.6.0)
Replace single token with empty string.
Replace single token with empty string.
(Since version 0.6.0)
(Since version 0.6.0)
Replace all tokens with empty string.
Replace all tokens with empty string.
(Since version 0.6.0)
Replace appearances of names that reference fromSymbol with toName.
Replace appearances of names that reference fromSymbol with toName.
toName should be a legal identifier, it cannot be a tree such as foo()
.
Use this patch for example to rename a methods on a class.
(Since version 0.6.0)
Replace references/call-sites to fromSymbol with references to toSymbol.
Replace references/call-sites to fromSymbol with references to toSymbol.
toSymbol must be a static method or a globally accessible object. toSymbol should not be path dependent. To rename a class method, use renameSymbol.
Experimental. May produce broken code in some cases. This
is the same patch as replace:com.foo/com.bar
from sbt-scalafix.
(Since version 0.6.0)
Helper for calling replaceSymbols without needing _*
Helper for calling replaceSymbols without needing _*
Defers work to replaceSymbols((String, String)*). Needs a dummy implicit to differentiate from replaceSymbols((String, String)*) after type erasure
(Since version 0.6.0)
Shorthand for calling replaceSymbol from strings.
Shorthand for calling replaceSymbol from strings.
String values are treated as Symbol.Global.
(Since version 0.6.0)
Replace the entire contents of this Token with toReplace.
Replace the entire contents of this Token with toReplace.
(Since version 0.6.0)
Replace all tokens of tree contents with toReplace.
Replace all tokens of tree contents with toReplace.
(Since version 0.6.0)