Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Puzz link loops #46

Merged
merged 11 commits into from
Oct 8, 2021
Merged

Puzz link loops #46

merged 11 commits into from
Oct 8, 2021

Conversation

nmay231
Copy link
Contributor

@nmay231 nmay231 commented Sep 30, 2021

More puzz.link parsing :)

Also, a couple of questions/comments:

  • Which auto-formatter do you use, if any? The contributing guide suggested prettier, but running prettier on the default settings changed files in multiple places.
  • The detour and maxi loop puzzles use corner marks instead of regular numbers. I'm not certain exactly how numberS works, so I just did center numbers.
  • Some of the loop puzzles have different features than Penpa+ (unless I missed something). Like country puzzles use a combination of the linex and lineox tool, and haisu has this extra arrow thing to give a line segment a direction (since the whole line has a start and an end). Therefore, I picked what I thought was the best matching tool for them, but you might prefer something else.
  • How do you want to sort the cases in the switch statement since it is getting long? Or do you care really?
More links (already added to TESTING.md)

Cheers!

@swaroopg92
Copy link
Owner

swaroopg92 commented Sep 30, 2021

@nmay231 Cool. I will review it soon.

  1. Does it affect js files? or did it affect only ".md" files. If its later then maybe because I don't have any settings for .md file. For JS/HTML I don't remember if changed default settings but here are mine if it helps (By the way the package I listed in contributing.md is for Sublime.text as I like coding in Sublime, but there should be equivalent version for vscode/atom)
{
    // The plugin looks for a .jsbeautifyrc file in the same directory as the
    // source file you're prettifying (or any directory above if it doesn't exist,
    // or in your home folder if everything else fails) and uses those options
    // along the default ones.

    // Details: https://github.com/victorporof/Sublime-HTMLPrettify#using-your-own-jsbeautifyrc-options
    // Documentation: https://github.com/beautify-web/js-beautify

    "all":
    {
        // These rules apply to any supported code that is going to be be prettified,
        // and have the lowest level of precedence (meaning any of the settings in
        // the 'html', 'css', 'js', 'json' and 'custom' categories override these).

        // You can add other .jsbeautifyrc rules in this section too.

        // End output with newline
        "end_with_newline": false,

        // Character(s) to use as line terminators.
        "eol": "\n",

        // Initial indentation level
        "indent_level": 0,

        // Indentation character
        "indent_char": " ",

        // Indentation size
        "indent_size": 4,

        // Indent with tabs, overrides `indent_size` and `indent_char`
        "indent_with_tabs": false,

        // Maximum number of line breaks to be preserved in one chunk (0 disables)
        "max_preserve_newlines": 0,

        // Whether existing line breaks before elements should be preserved (only works before elements, not inside tags or for text)
        "preserve_newlines": true,

        // Lines should wrap at next opportunity after this number of characters (0 disables)
        "wrap_line_length": 0
    },

    "html":
    {
        // Rules added here apply only to HTML-like files, as determined by the
        // rules specified for `global_file_rules` in the plugin settings. They
        // take precedence  over all of the settings in the 'all' category above.

        // You can add other .jsbeautifyrc rules in this section too.

        // e.g. {{#foo}}, {{/foo}}
        "indent_handlebars": false,

        // Indent <head> and <body> sections
        "indent_inner_html": false,

        // [keep|separate|normal]
        "indent_scripts": "normal",

        // List of tags that should not be reformatted.  This should generally not be needed. 
        "unformatted": [],
    },

    "css":
    {
        // Rules added here apply only to CSS-like files, as determined by the
        // rules specified for `global_file_rules` in the plugin settings. They
        // take precedence  over all of the settings in the 'all' category above.

        // You can add other .jsbeautifyrc rules in this section too.

        // Add a new line after every css rule
        "newline_between_rules": true,

        // Selector separator character
        "selector_separator": " ",

        // Separate selectors with newline or not (e.g. "a,\nbr" or "a, br")
        "selector_separator_newline": true
    },

    "js":
    {
        // Rules added here apply only to JS-like files, as determined by the
        // rules specified for `global_file_rules` in the plugin settings. They
        // take precedence  over all of the settings in the 'all' category above.

        // You can add other .jsbeautifyrc rules in this section too.

        // [collapse|collapse-preserve-inline|expand|end-expand|none] Put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or put end braces on own line, or attempt to keep them where they are
        "brace_style": "collapse-preserve-inline",

        // Break chained method calls across subsequent lines
        "break_chained_methods": false,

        // Put commas at the beginning of new line instead of end
        "comma_first": false,

        // Pass E4X xml literals through untouched
        "e4x": true,

        // If true, then jslint-stricter mode is enforced
        "jslint_happy": false,

        // Preserve array indentation
        "keep_array_indentation": false,

        // Preserve function indentation
        "keep_function_indentation": false,

        // [before-newline|after-newline|preserve-newline] Set operator position
        "operator_position": "before-newline",

        // Should the space before an anonymous function's parens be added, "function()" vs "function ()"
        "space_after_anon_function": false,

        // Should the space before conditional statement be added, "if(true)" vs "if (true)"
        "space_before_conditional": true,

        // Add padding spaces within empty paren, "f()" vs "f( )"
        "space_in_empty_paren": false,

        // Add padding spaces within paren, ie. f( a, b )
        "space_in_paren": false,

        // Should printable characters in strings encoded in \xNN notation be unescaped, "example" vs "\x65\x78\x61\x6d\x70\x6c\x65"
        "unescape_strings": false
    },

    "json":
    {
        // Rules added here apply only to JSON-like files, as determined by the
        // rules specified for `global_file_rules` in the plugin settings. They
        // take precedence over all of the settings in the 'all' category above.

        // You can add other .jsbeautifyrc rules in this section too.

        // [collapse|collapse-preserve-inline|expand|end-expand|none] Put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or put end braces on own line, or attempt to keep them where they are
        "brace_style": "expand",

        // Preserve array indentation
        "keep_array_indentation": false,

        // Should printable characters in strings encoded in \xNN notation be unescaped, "example" vs "\x65\x78\x61\x6d\x70\x6c\x65"
        "unescape_strings": false
    },

    "custom":
    {
        // Rules added here apply only to files matching specific glob strings,
        // but respecting any whitelists or blacklists as determined by the
        // rules specified for `global_file_rules` in the plugin settings. They
        // take precedence over any of the settings in the categories above.

        // For the following entries, keys are globs and values are objects which
        // can contain any kind of .jsbeautifyrc setting.

        "@(package?(-lock)|yarn-lock).json":
        {
            "indent_size": 2,
            "brace_style": "collapse"
        },

        "*.sublime-@(settings|keymap|commands|menu)":
        {
            "indent_size": 4,
            "brace_style": "expand"
        }
    }
}
  1. No worries regarding the corner clues, I will modify it to put it in the corner and that should help you as a reference for future genres.
  2. Yeah not all possible composite modes exist right now, I will add it to the Composite Modes Issue and leave the best possible choice for now.
  3. I am listing the completed puzzle genres in the README.md file in alphabetical order, not sure if we want to do that. Mainly because certain genres share codes that are not alphabetical. Also Honestly even if alphabetical, we would still end up using CTRL+F for the search. I think it's ok, let's leave the order as is and keep adding at the bottom or to the corresponding similar genres.

@swaroopg92 swaroopg92 added the enhancement New feature or request label Sep 30, 2021
@nmay231
Copy link
Contributor Author

nmay231 commented Oct 2, 2021

Ah, I had misread "prettify" as "prettier" and that's why it wasn't formatting as expected initially.

I still wasn't able to get auto-formatting working quite as well as I had hoped. The Sublime plugin you use uses js-beautify under the hood, but the vscode extension that integrates js-beautify into vscode hasn't been updated since 2019. Unfortunately, it's a bit buggy.

But it's not the end of the world 🤷


Your comments on 2-4 make sense, especially with 4. There's just a slight OCD in me that wants to organize 😁

@nmay231
Copy link
Contributor Author

nmay231 commented Oct 6, 2021

@swaroopg92 Figured out how numberS works and changed Maxi-loop and Detour

Additionally, added Masyu, Balance loop, and Midloop. I'll hold off on adding more until you can get to this so it's not too much at one time. :)

Also, feel free to squash my commits to make for a cleaner history.

@swaroopg92
Copy link
Owner

Thanks a lot.

  1. Awesome, it was perfect. Didn't observe anything out of place. I believe you got a pretty good grip on it now :). Didn't needed to make any change including formatting changes. So I think your setting works for me, not sure if it's vice-versa haha.
  2. Added country road and Haisu in issue Composite Modes #40 , if I attend to it in the future :)
  3. Updated changelog and readme.
  4. Merging and closing.

@swaroopg92 swaroopg92 merged commit 518a771 into swaroopg92:dev Oct 8, 2021
@nmay231 nmay231 deleted the puzz-link-loops branch October 8, 2021 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants