Как найти и посчитать шаблоны отступов в некоторых конкретных комментариях в Java - PullRequest
0 голосов
/ 09 мая 2019

Допустим, в одном файле у меня есть следующий код Java:

  //#if defined(LOGGING)
4    static {
8        if (System.getProperty(ARGO_CONSOLE_SUPPRESS) != null) {
12            Category.getRoot().getLoggerRepository().setThreshold(Level.OFF);
8        }
4    }
  //#endif

Или это:

//#if defined(LOGGING)
0 static {
0 if (System.getProperty(ARGO_CONSOLE_SUPPRESS) != null) {
0 Category.getRoot().getLoggerRepository().setThreshold(Level.OFF);
0 }
0 }
//#endif

В файл добавлены два комментария, в дополнение к коду, а цифры показывают количество пробелов (они добавлены только здесь для иллюстрации). Теперь моя цель - определить два шаблона отступов между комментариями: Bubble (первый фрагмент кода) или Straight (второй фрагмент кода).

В идеале я пытаюсь сказать, например:

LOGGING: Bubble 1, Straight 1

LOGGING2: Bubble 15, Straight 14

... (и т. Д. Для каждого //#if defined(...) ... //#endif.

Чтобы найти отступы, я использую следующий метод:

    public static void lineIndents(File file) throws IOException {
        scan = new Scanner(file);   
        while(scan.hasNextLine()) {
        String strLine = scan.nextLine();

        if(strLine.isEmpty()) {
            System.out.println(strLine); 
        } else {
            if(strLine.charAt(0) == '\t') { 
                System.out.println("t" + strLine.lastIndexOf('\t') + strLine);
            } else {
                //writeIndents(file, strLine.indexOf(strLine.trim()));
                System.out.println(strLine.indexOf(strLine.trim()) + ": " + strLine);
                }
             }
        }   

    }

Спасибо за любые предложения, помощь или комментарий!

...