diff --git a/verible/verilog/formatting/formatter_function_task_test.cc b/verible/verilog/formatting/formatter_function_task_test.cc
index 88e30bb..74db8f5 100644
--- a/verible/verilog/formatting/formatter_function_task_test.cc
+++ b/verible/verilog/formatting/formatter_function_task_test.cc
@@ -190,7 +190,7 @@
      "function\nvoid\tpete;repeat(3)  "
      "++k\n;endfunction\n",
      "function void pete;\n"
-     "  repeat (3)++k;\n"  // TODO(fangism): space before ++
+     "  repeat (3) ++k;\n"
      "endfunction\n"},
     {// repeat loop, forced break
      "function\nvoid\tpete;repeat(3)//\n"
@@ -211,7 +211,7 @@
      "function\nvoid\twily;while( coyote )  "
      "++ super_genius\n;   endfunction\n",
      "function void wily;\n"
-     "  while (coyote)++super_genius;\n"  // TODO(fangism): space before ++
+     "  while (coyote) ++super_genius;\n"
      "endfunction\n"},
     {// while loop, forced break
      "function\nvoid\twily;while( coyote ) //\n "
@@ -1841,6 +1841,14 @@
         "endtask\n",
     },
     {
+        // assert property statement, with prefix inc/dec
+        "task  t ;assert  property( x) ++j; else --k;endtask",
+        "task t;\n"
+        "  assert property (x) ++j;\n"
+        "  else --k;\n"
+        "endtask\n",
+    },
+    {
         // assert property statements, with action block
         "task  t ;assert  property( x) begin j();end "
         " assert\tproperty(y )begin\tk( );  end endtask",
diff --git a/verible/verilog/formatting/formatter_module_test.cc b/verible/verilog/formatting/formatter_module_test.cc
index 4290e5e..f6e142b 100644
--- a/verible/verilog/formatting/formatter_module_test.cc
+++ b/verible/verilog/formatting/formatter_module_test.cc
@@ -2794,6 +2794,36 @@
         "endmodule\n",
     },
     {
+        // prefix increment/decrement as statement after a ')'
+        "module m ;function automatic void f;"
+        "if(a==8'ha0)++result; if(b==8'ha0)--result;"
+        "i++; j--; c[i]++;"
+        "endfunction endmodule",
+        "module m;\n"
+        "  function automatic void f;\n"
+        "    if (a == 8'ha0) ++result;\n"
+        "    if (b == 8'ha0) --result;\n"
+        "    i++;\n"
+        "    j--;\n"
+        "    c[i]++;\n"
+        "  endfunction\n"
+        "endmodule\n",
+    },
+    {
+        "module t;initial #2 ->e1; initial #3 ->>e1[3]; "
+        "initial begin ->a; ->b; ->>c; ->>d; end endmodule",
+        "module t;\n"
+        "  initial #2 ->e1;\n"
+        "  initial #3 ->>e1[3];\n"
+        "  initial begin\n"
+        "    ->a;\n"
+        "    ->b;\n"
+        "    ->>c;\n"
+        "    ->>d;\n"
+        "  end\n"
+        "endmodule\n",
+    },
+    {
         // qualified variables
         "module m ;initial  begin automatic int a; "
         " static byte s=0;end endmodule",
diff --git a/verible/verilog/formatting/token-annotator.cc b/verible/verilog/formatting/token-annotator.cc
index ebaeb21..fc6d2f0 100644
--- a/verible/verilog/formatting/token-annotator.cc
+++ b/verible/verilog/formatting/token-annotator.cc
@@ -483,6 +483,16 @@
   if (right.TokenEnum() == TK_POUNDPOUND) {
     return {1, "Space before ## (delay) operator"};
   }
+  if ((right.TokenEnum() == verilog_tokentype::TK_INCR ||
+       right.TokenEnum() == verilog_tokentype::TK_DECR) &&
+      right_context.IsInside(NodeEnum::kIncrementDecrementExpression) &&
+      !left_context.IsInside(NodeEnum::kIncrementDecrementExpression)) {
+    return {1, "Space before prefix '++'/'--'."};
+  }
+  if (right.TokenEnum() == verilog_tokentype::TK_TRIGGER ||
+      right.TokenEnum() == verilog_tokentype::TK_NONBLOCKING_TRIGGER) {
+    return {1, "Space before event trigger '->'/'->>' statement."};
+  }
   if (left.format_token_enum == FormatTokenType::unary_operator) {
     return {0, "++i over ++ i"};  // "++i" instead of "++ i"
   }
diff --git a/verible/verilog/formatting/token-annotator_test.cc b/verible/verilog/formatting/token-annotator_test.cc
index 04c9832..2adf936 100644
--- a/verible/verilog/formatting/token-annotator_test.cc
+++ b/verible/verilog/formatting/token-annotator_test.cc
@@ -2716,6 +2716,43 @@
           {0, SpacingOptions::kMustAppend},
       },
 
+      // Postfix "i++"/"j--": operand and operator share the same
+      // kIncrementDecrementExpression node, so no space is required.
+      {
+          DefaultStyle,
+          {verilog_tokentype::SymbolIdentifier, "i"},
+          {verilog_tokentype::TK_INCR, "++"},
+          {NodeEnum::kIncrementDecrementExpression},
+          {NodeEnum::kIncrementDecrementExpression},
+          {0, SpacingOptions::kUndecided},
+      },
+      {
+          DefaultStyle,
+          {verilog_tokentype::SymbolIdentifier, "j"},
+          {verilog_tokentype::TK_DECR, "--"},
+          {NodeEnum::kIncrementDecrementExpression},
+          {NodeEnum::kIncrementDecrementExpression},
+          {0, SpacingOptions::kUndecided},
+      },
+      // Prefix "++i"/"--j" used as its own statement/expression: the
+      // preceding token (e.g. a ')') is not part of the same expression
+      {
+          DefaultStyle,
+          {')', ")"},
+          {verilog_tokentype::TK_INCR, "++"},
+          {/* any context */},
+          {NodeEnum::kIncrementDecrementExpression},
+          {1, SpacingOptions::kUndecided},
+      },
+      {
+          DefaultStyle,
+          {')', ")"},
+          {verilog_tokentype::TK_DECR, "--"},
+          {/* any context */},
+          {NodeEnum::kIncrementDecrementExpression},
+          {1, SpacingOptions::kUndecided},
+      },
+
       // Handle '->' as a unary prefix expression.
       {
           DefaultStyle,
@@ -2734,6 +2771,24 @@
           {0, SpacingOptions::kUndecided},  // could be MustAppend though
       },
 
+      // Handle '->'/'->>' as event trigger statements
+      {
+          DefaultStyle,
+          {verilog_tokentype::TK_DecNumber, "1"},
+          {TK_TRIGGER, "->"},
+          {/* any context */},  // context
+          {/* any context */},  // context
+          {1, SpacingOptions::kUndecided},
+      },
+      {
+          DefaultStyle,
+          {verilog_tokentype::TK_DecNumber, "1"},
+          {TK_NONBLOCKING_TRIGGER, "->>"},
+          {/* any context */},  // context
+          {/* any context */},  // context
+          {1, SpacingOptions::kUndecided},
+      },
+
       // Handle '->' as a binary operator
       {
           DefaultStyle,
diff --git a/verible/verilog/formatting/tree-unwrapper.cc b/verible/verilog/formatting/tree-unwrapper.cc
index 09fa8c0..261ec03 100644
--- a/verible/verilog/formatting/tree-unwrapper.cc
+++ b/verible/verilog/formatting/tree-unwrapper.cc
@@ -964,7 +964,9 @@
     case NodeEnum::kProceduralContinuousReleaseStatement:
     case NodeEnum::kNetVariableAssignment:           // e.g. x=y
     case NodeEnum::kBlockingAssignmentStatement:     // id=expr
+    case NodeEnum::kBlockingEventTriggerStatement:   // ->e;
     case NodeEnum::kNonblockingAssignmentStatement:  // dest <= src;
+    case NodeEnum::kNonblockingEventTriggerStatement:  // ->>e;
     case NodeEnum::kAssignModifyStatement:           // id+=expr
     case NodeEnum::kIncrementDecrementExpression:    // --y
     case NodeEnum::kProceduralTimingControlStatement:
