From aa7ff9929dca9141f66ed4ca105e0a2fbdebecab Mon Sep 17 00:00:00 2001 From: Arnaud Freismuth Date: Mon, 18 Nov 2019 21:11:46 +0100 Subject: [PATCH] add jsdoc and rearrange methods --- packages/java-parser/src/comments.js | 56 ++++++--- .../scripts/single-printer-run/_input.java | 54 +++----- .../scripts/single-printer-run/_output.java | 119 ++---------------- 3 files changed, 68 insertions(+), 161 deletions(-) diff --git a/packages/java-parser/src/comments.js b/packages/java-parser/src/comments.js index 8949c640..e9dc2267 100644 --- a/packages/java-parser/src/comments.js +++ b/packages/java-parser/src/comments.js @@ -115,7 +115,7 @@ function findUpperBoundToken(tokens, comment) { /** * Extends each comments offsets to the left and the right in order to match the - * previous and next token offset. This allow to directly match the prettier-ignore + * previous and next token offset. This allow to directly match the prettier-ignore or formatter:off|on * comment to the correct CSTNode. * @param {*} tokens ordered array of tokens * @param {*} comments array of prettier-ignore comments @@ -137,6 +137,11 @@ function extendCommentRange(tokens, comments) { return ignoreComments; } +/** + * Filter comments to find prettier-ignore's ones. + * @param comments + * @returns prettier-ignore comments + */ function filterPrettierIgnore(comments) { return [...comments].filter(comment => comment.image.match( @@ -145,6 +150,12 @@ function filterPrettierIgnore(comments) { ); } +/** + * Check if an node must be ignore because of prettier-ignore comment + * @param node + * @param comments + * @param ignoredNodes + */ function shouldIgnore(node, comments, ignoredNodes) { const matchingComment = _.find( comments, @@ -155,6 +166,23 @@ function shouldIgnore(node, comments, ignoredNodes) { } } +function attachIgnoreNodes(ignoreComments, ignoredNodes) { + ignoreComments.forEach(comment => { + if (ignoredNodes[comment.startOffset]) { + ignoredNodes[comment.startOffset].ignore = true; + } + }); +} + +function ignoredComments(tokens, comments) { + return extendCommentRange(tokens, filterPrettierIgnore(comments)); +} + +/** + * Filter comments to find formatter:off and formatter:on. + * @param comments + * @returns formatter:off and formatter:on comments + */ function filterFormatterOffOn(comments) { return [...comments].filter(comment => comment.image.match( @@ -163,6 +191,11 @@ function filterFormatterOffOn(comments) { ); } +/** + * Create pairs of formatter:off and formatter:on + * @param comments + * @returns pairs of formatter:off and formatter:on + */ function matchFormatterOffOnPair(comments) { let isPreviousCommentOff = false; let isCurrentCommentOff = true; @@ -193,6 +226,11 @@ function matchFormatterOffOnPair(comments) { return pairs; } +/** + * Check if the node is between formatter:off and formatter:on and change his ignore state + * @param node + * @param commentPairs + */ function shouldNotFormat(node, commentPairs) { const matchingPair = _.findLast( commentPairs, @@ -207,24 +245,10 @@ function shouldNotFormat(node, commentPairs) { } } -function attachIgnoreNodes(ignoreComments, ignoredNodes) { - ignoreComments.forEach(comment => { - if (ignoredNodes[comment.startOffset]) { - ignoredNodes[comment.startOffset].ignore = true; - } - }); -} - -function ignoredComments(tokens, comments) { - return extendCommentRange(tokens, filterPrettierIgnore(comments)); -} - function formatterOffOnComments(tokens, comments) { const offOn = filterFormatterOffOn(comments); const extendedRangeOffOn = extendCommentRange(tokens, offOn); - const pairs = matchFormatterOffOnPair(extendedRangeOffOn); - - return pairs; + return matchFormatterOffOnPair(extendedRangeOffOn); } module.exports = { diff --git a/packages/prettier-plugin-java/scripts/single-printer-run/_input.java b/packages/prettier-plugin-java/scripts/single-printer-run/_input.java index 859ee367..edf095b8 100644 --- a/packages/prettier-plugin-java/scripts/single-printer-run/_input.java +++ b/packages/prettier-plugin-java/scripts/single-printer-run/_input.java @@ -1,57 +1,33 @@ -// @formatter:on -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { +public enum Enum { + + SOME_ENUM, ANOTHER_ENUM, LAST_ENUM; - } } -// @formatter:off -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { +public enum Enum { - } -} -// @formatter:on -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { + THIS_IS_GOOD("abc"), THIS_IS_FINE("abc"); - } -} -// @formatter:off -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { + public static final String thisWillBeDeleted = "DELETED"; - } -} -// @formatter:on -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { + private final String value; + public Enum(String value) { + this.value = value; } -} -// @formatter:on - -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { + public String toString() { + return "STRING"; } -} +} -// @formatter:off -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { +class CLassWithEnum { - } -} + public static enum VALID_THINGS { -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { + FIRST, SECOND } -} -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { - } } diff --git a/packages/prettier-plugin-java/scripts/single-printer-run/_output.java b/packages/prettier-plugin-java/scripts/single-printer-run/_output.java index 1d9bb6e3..e6a35236 100644 --- a/packages/prettier-plugin-java/scripts/single-printer-run/_output.java +++ b/packages/prettier-plugin-java/scripts/single-printer-run/_output.java @@ -1,114 +1,21 @@ -// @formatter:on -public class PrettierIgnoreClass { - - public void myMethod( - int param1, - int param2, - int param3, - int param4, - int param5, - int param6, - int param7, - int param8, - int param9, - int param10 - ) {} +public enum Enum { + SOME_ENUM, ANOTHER_ENUM, LAST_ENUM; } +public enum Enum { + THIS_IS_GOOD ("abc"), THIS_IS_FINE ("abc"); + public static final String thisWillBeDeleted = "DELETED"; + private final String value; -// @formatter:off -public class PrettierIgnoreClass { - - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { - + public Enum(String value) { + this.value = value; } -} - -// @formatter:on -public class PrettierIgnoreClass { - - public void myMethod( - int param1, - int param2, - int param3, - int param4, - int param5, - int param6, - int param7, - int param8, - int param9, - int param10 - ) {} -} - -// @formatter:off -public class PrettierIgnoreClass { - - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { + public String toString() { + return "STRING"; } } - -// @formatter:on -public class PrettierIgnoreClass { - - public void myMethod( - int param1, - int param2, - int param3, - int param4, - int param5, - int param6, - int param7, - int param8, - int param9, - int param10 - ) {} -} - -// @formatter:on -public class PrettierIgnoreClass { - - public void myMethod( - int param1, - int param2, - int param3, - int param4, - int param5, - int param6, - int param7, - int param8, - int param9, - int param10 - ) {} -} - -// @formatter:off -public class PrettierIgnoreClass { - - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { - - } -} - -public class PrettierIgnoreClass { - public void myMethod(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10) { - +class CLassWithEnum { + public static enum VALID_THINGS { + FIRST, SECOND } } - -// @formatter:on -public class PrettierIgnoreClass { - - public void myMethod( - int param1, - int param2, - int param3, - int param4, - int param5, - int param6, - int param7, - int param8, - int param9, - int param10 - ) {} -}