This is an automated email from the ASF dual-hosted git repository.

geertjan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-website.git


The following commit(s) were added to refs/heads/master by this push:
     new de7625b  imports and custom conditions
     new 82f42b6  Merge pull request #565 from mbien/patch-1
de7625b is described below

commit de7625beecc498cc45473ae557340a3b888603dd
Author: Michael Bien <mbie...@gmail.com>
AuthorDate: Sat Oct 23 03:51:13 2021 +0200

    imports and custom conditions
    
    added examples for imports and custom conditions. Mostly taken from the old 
bitbucket wiki, minor updates.
---
 .../src/content/jackpot/HintsFileFormat.asciidoc   | 53 ++++++++++++++++++++--
 1 file changed, 49 insertions(+), 4 deletions(-)

diff --git a/netbeans.apache.org/src/content/jackpot/HintsFileFormat.asciidoc 
b/netbeans.apache.org/src/content/jackpot/HintsFileFormat.asciidoc
index 831d13d..f57428d 100644
--- a/netbeans.apache.org/src/content/jackpot/HintsFileFormat.asciidoc
+++ b/netbeans.apache.org/src/content/jackpot/HintsFileFormat.asciidoc
@@ -32,9 +32,10 @@ The rules file consists of any number of transformation 
rules.
 The rule is defined as follows:
 [source,java]
 ----
-     <pattern>
- => <fix-pattern>
- => <fix-pattern>
+"description text":
+    <pattern>      :: <rule-condition>
+ => <fix-pattern>  :: <fix-condition>
+ => <fix-pattern>  :: <fix-condition>
  ;;
 ----
 
@@ -63,6 +64,8 @@ to:
 
 Note: `$1` is a variable, explained in the <<variables>> section.
 
+Note: conditions are explained in the <<conditions>> section.
+
 Note: batch refactoring will typically use only the first applicable fix 
patterns of each applicable rule.
 
 == Patterns
@@ -313,7 +316,32 @@ Note: Special variable `$_` represents the whole matching 
region.
 
 === Custom Conditions
 
-TBD
+The following rule finds variables of the type `com.whatever.Option` and name 
"foo" or "bar" and renames them.
+
+[source,java]
+----
+<?
+import java.util.Set;
+?>
+
+    $opt    :: $opt instanceof com.whatever.Option && matchName($opt)
+=>  $optNew :: changeVariableName($opt, $optNew)
+;;
+
+<?
+    public boolean matchName(Variable v) {
+        return names.contains(context.name(v));
+    }
+
+    public boolean changeVariableName(Variable v, Variable target) {
+        String name = context.name(v);
+        context.createRenamed(v, target, name + "Renamed");
+        return true;
+    }
+
+    private final static Set<String> names = Set.of("foo", "bar");
+?>
+----
 
 == Display Names and Localization
 
@@ -322,6 +350,23 @@ TBD
 [[custom-imports]]
 == Custom Imports
 
+[source,java]
+----
+<?
+import java.util.LinkedList;
+import java.util.ArrayList;
+?>
+
+   new LinkedList()
+=> new ArrayList()
+;;
+
+   LinkedList $0;
+=> ArrayList $0;
+;;
+----
+
+
 == Notable Patterns
 
 === Catch Pattern

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to