jhipster / prettier-java

Prettier Java Plugin
http://www.jhipster.tech/prettier-java/
Apache License 2.0
1.06k stars 103 forks source link

formatWithCursor and --cursor-offset seem not work #660

Open nonsense-j opened 2 months ago

nonsense-j commented 2 months ago

Prettier-Java 2.6.0

Detail

I want to get the index change of given cursor when formatting Java code. I noticed that it can be done with formatWithCursor(API) or --cursor-offset(CLI). However, whatever valid offset I try, the result will always be 0. Besides, I have also tried with formatting babel code (builtin in Prettier), which behaved correctly. I wonder how I can fix this. Is this a feature unfinished?

I will show you the example with API (CLI also fails extractly the same)

API Usage with formatWithCursor

import * as prettier from "prettier";
import * as prettierPluginJava from "prettier-plugin-java";

const javaText = `
  public class HelloWorldExample{public static void main(String args[]){
    System.out.println("Hello World !");
  }
}
`;

const formattedText = await prettier.formatWithCursor(javaText, {
  cursorOffset: 5,
  parser: "java",
  plugins: [prettierPluginJava.default],
});

Output:

{
  formatted: 'public class HelloWorldExample {\n' +
    '\n' +
    '  public static void main(String args[]) {\n' +
    '    System.out.println("Hello World !");\n' +
    '  }\n' +
    '}\n',
  cursorOffset: 0,
  comments: []
}

Expected output:


{
  formatted: 'public class HelloWorldExample {\n' +
    '\n' +
    '  public static void main(String args[]) {\n' +
    '    System.out.println("Hello World !");\n' +
    '  }\n' +
    '}\n',
  cursorOffset: 2,
  comments: []
}