Loading ...
Sorry, an error occurred while loading the content.

Re: option.indent

Expand Messages
  • Merlin
    ... My error: My question should have been: Why is .test allowed at 9. Indent =4. The .replace lines are continuations of the .test line and so are
    Message 1 of 17 , Jan 21, 2011
    • 0 Attachment
      --- In jslint_com@yahoogroups.com, "Merlin" <g7awz@...> wrote:
      >
      > From json2.js:
      >
      > /*global text, reviver, walk */
      >
      > var j;
      > if (/^[\],:{}\s]*$/
      > .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
      > .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
      > .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
      > j = eval('(' + text + ')');
      > return typeof reviver === 'function' ?
      > walk({'': j}, '') : j;
      > }
      >
      > Why are .test etc at 9 and not at 5? Ident = 4.
      >

      My error: My question should have been:

      Why is '.test' allowed at 9. Indent =4.
      The '.replace' lines are continuations of the '.test' line and so are correctly placed at 9.
    • Douglas Crockford
      ... Thanks. Please try it now.
      Message 2 of 17 , Jan 21, 2011
      • 0 Attachment
        --- In jslint_com@yahoogroups.com, "walfisch1" <christian.wirkus@...> wrote:

        > If written as comment at the head of the code (/*jslint indent: 0 */), it throws the following error:
        > "Problem at line 1 character 18: Expected a small integer and instead saw '0'."


        Thanks. Please try it now.
      • Merlin
        ... /*global date */ var lookFor = /^( d{4}) -( d{2}) -( d{2})T( d{2}) :( d{2}) :( d{2})Z$/, found = date.match(lookFor), year, month, day, hours, mins, secs;
        Message 3 of 17 , Jan 21, 2011
        • 0 Attachment
          --- In jslint_com@yahoogroups.com, "Douglas Crockford" <douglas@...> wrote:
          >
          > JSLint is once again looking at indentation when option.indent contains a number that is greater than zero.
          >
          > It uses an enhanced K&R style, in which {} pairs, [] pairs, or () pairs can be opened by placing a line break after the opening character. So the open style can be used on blocks, object literals, array literals, subscripts, parameter lists, argument lists, control sections, and expressions.
          >
          > Indentation and script white space are now completely independent.
          >

          /*global date */
          var lookFor = /^(\d{4})\-(\d{2})\-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})Z$/,
          found = date.match(lookFor), year, month,
          day, hours, mins, secs;
          /*
          Error:
          Problem at line 4 character 34: Expected 'year' at column 5, not column 34.
          found = date.match(lookFor), year, month,

          Problem at line 4 character 40: Expected 'month' at column 5, not column 40.
          found = date.match(lookFor), year, month,

          Problem at line 5 character 10: Expected 'hours' at column 5, not column 10.
          day, hours, mins, secs;

          Problem at line 5 character 17: Expected 'mins' at column 5, not column 17.
          day, hours, mins, secs;

          Problem at line 5 character 23: Expected 'secs' at column 5, not column 23.
          day, hours, mins, secs;
          */

          /*global date, lookFor */

          var found = date.match(lookFor), year, month,
          day, hours, mins, secs;

          // is OK

          What is the rule, please?
        • Douglas Crockford
          ... If it sees the second variable name at the start of a new line, it assumes that you want to list the names in the open format. So you can use the open form
          Message 4 of 17 , Jan 21, 2011
          • 0 Attachment
            --- In jslint_com@yahoogroups.com, "Merlin" <g7awz@...> wrote:
            >
            > --- In jslint_com@yahoogroups.com, "Douglas Crockford" <douglas@> wrote:
            > >
            > > JSLint is once again looking at indentation when option.indent contains a number that is greater than zero.
            > >
            > > It uses an enhanced K&R style, in which {} pairs, [] pairs, or () pairs can be opened by placing a line break after the opening character. So the open style can be used on blocks, object literals, array literals, subscripts, parameter lists, argument lists, control sections, and expressions.
            > >
            > > Indentation and script white space are now completely independent.
            > >
            >
            > /*global date */
            > var lookFor = /^(\d{4})\-(\d{2})\-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})Z$/,
            > found = date.match(lookFor), year, month,
            > day, hours, mins, secs;
            > /*
            > Error:
            > Problem at line 4 character 34: Expected 'year' at column 5, not column 34.
            > found = date.match(lookFor), year, month,
            >
            > Problem at line 4 character 40: Expected 'month' at column 5, not column 40.
            > found = date.match(lookFor), year, month,
            >
            > Problem at line 5 character 10: Expected 'hours' at column 5, not column 10.
            > day, hours, mins, secs;
            >
            > Problem at line 5 character 17: Expected 'mins' at column 5, not column 17.
            > day, hours, mins, secs;
            >
            > Problem at line 5 character 23: Expected 'secs' at column 5, not column 23.
            > day, hours, mins, secs;
            > */
            >
            > /*global date, lookFor */
            >
            > var found = date.match(lookFor), year, month,
            > day, hours, mins, secs;
            >
            > // is OK
            >
            > What is the rule, please?

            If it sees the second variable name at the start of a new line,
            it assumes that you want to list the names in the open format.
            So you can use the open form


            ` var lookFor = /^(\d{4})\-(\d{2})\-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})Z$/,
            ` found = date.match(lookFor),
            ` year,
            ` month,
            ` day,
            ` hours,
            ` mins,
            ` secs;

            or the closed form

            ` var lookFor = /^(\d{4})\-(\d{2})\-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})Z$/, found =
            ` date.match(lookFor), year, month, day, hours, mins, secs;
          • urangatang@att.net
            ... In K&R style, the opening brace should not appear in the same line of a function declaration, correct? JSLint does seem to accept that at the moment. The
            Message 5 of 17 , Jan 21, 2011
            • 0 Attachment
              --- In jslint_com@yahoogroups.com, "Douglas Crockford" <douglas@...> wrote:
              > It uses an enhanced K&R style, in which {} pairs, [] pairs, or () pairs can be opened by placing a line break after the opening character. So the open style can be used on blocks, object literals, array literals, subscripts, parameter lists, argument lists, control sections, and expressions.


              In K&R style, the opening brace should not appear in the same line of a function declaration, correct? JSLint does seem to accept that at the moment.

              The following code produces three errors:

              function a()
              {
              ____var b;
              }


              Problem at line 3 character 5: Expected 'var' at column 9, not column 5.

              var b;

              Problem at line 3 character 9: Expected 'b' at column 13, not column 9.

              var b;

              Problem at line 4 character 1: Expected '}' at column 5, not column 1.

              }
            • Merlin
              ... Thanks - now I understand. I noticed also that the maxerr and indent settings are now unconditionally displayed in the jslint string, as in /*jslint
              Message 6 of 17 , Jan 21, 2011
              • 0 Attachment
                --- In jslint_com@yahoogroups.com, "Douglas Crockford" <douglas@...> wrote:
                > If it sees the second variable name at the start of a new line,
                > it assumes that you want to list the names in the open format.
                > So you can use the open form
                >
                > ` var lookFor = /^(\d{4})\-(\d{2})\-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})Z$/,
                > ` found = date.match(lookFor),
                > ` year,
                > ` month,
                > ` day,
                > ` hours,
                > ` mins,
                > ` secs;
                >
                > or the closed form
                >
                > ` var lookFor = /^(\d{4})\-(\d{2})\-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})Z$/, found =
                > ` date.match(lookFor), year, month, day, hours, mins, secs;
                >

                Thanks - now I understand.

                I noticed also that the maxerr and indent settings are now unconditionally displayed in the jslint string, as in

                /*jslint maxerr: 50, indent: 4 */

                I'll do likewise in Widget Tester.
              • abyssoft@ymail.com
                I used /**/ to represent the 4 spaces, due to no way to do CODE or PRE tags. /* Given */ /*jslint strict: true, white: true, browser: true, devel: true,
                Message 7 of 17 , Jan 21, 2011
                • 0 Attachment
                  I used /**/ to represent the 4 spaces, due to no way to do CODE or PRE tags.


                  /* Given */
                  /*jslint strict: true, white: true, browser: true, devel: true, windows: true, sub: true, undef: true */
                  /*jslint nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, immed: true */
                  /*jslint maxerr: 50, indent: 4 */

                  (
                  /**/function me() {
                  /**//**/"use strict";
                  /**/}()
                  );

                  results in

                  Problem at line 7 character 5: Expected 'function' at column 9, not column 5.

                  /**/function me() {
                • Douglas Crockford
                  ... ( ````function me() { ```````` use strict ; ````}() ); results in Problem at line 7 character 5: Expected function at column 9, not column 5. Thanks.
                  Message 8 of 17 , Jan 21, 2011
                  • 0 Attachment
                    --- In jslint_com@yahoogroups.com, "abyssoft@..." <abyssoft@...> wrote:

                    (
                    ````function me() {
                    ````````"use strict";
                    ````}()
                    );

                    results in

                    Problem at line 7 character 5: Expected 'function' at column 9, not column 5.



                    Thanks. Please try it now.
                  • abyssoft@ymail.com
                    Tested and Fixed, Thank you.
                    Message 9 of 17 , Jan 21, 2011
                    • 0 Attachment
                      Tested and Fixed,
                      Thank you.

                      --- In jslint_com@yahoogroups.com, "Douglas Crockford" <douglas@...> wrote:
                      >
                      > --- In jslint_com@yahoogroups.com, "abyssoft@" <abyssoft@> wrote:
                      >
                      > (
                      > ````function me() {
                      > ````````"use strict";
                      > ````}()
                      > );
                      >
                      > results in
                      >
                      > Problem at line 7 character 5: Expected 'function' at column 9, not column 5.
                      >
                      >
                      >
                      > Thanks. Please try it now.
                      >
                    Your message has been successfully submitted and would be delivered to recipients shortly.