Skip to content

Commit

Permalink
add jsdoc and rearrange methods
Browse files Browse the repository at this point in the history
  • Loading branch information
nonomoho committed Nov 18, 2019
1 parent 180de0c commit aa7ff99
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 161 deletions.
56 changes: 40 additions & 16 deletions packages/java-parser/src/comments.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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(
Expand All @@ -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,
Expand All @@ -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(
Expand All @@ -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;
Expand Down Expand Up @@ -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,
Expand All @@ -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 = {
Expand Down
Original file line number Diff line number Diff line change
@@ -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) {

}
}
119 changes: 13 additions & 106 deletions packages/prettier-plugin-java/scripts/single-printer-run/_output.java
Original file line number Diff line number Diff line change
@@ -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
) {}
}

0 comments on commit aa7ff99

Please sign in to comment.