I'm not referring to "alias" specific.

For example, if my code in aliases.ini looks something like:

Code:
one {
  blah blah
  blah {
    blah {
      blah blah
      blah blah
    }
    blah blah
    blah blah
  }

  two {
    blah blah
    blah {
      blah blah
      blah blah
    }
    blah blah
    blah blah
  }

  three {
    blah blah
    blah {
      blah blah
      blah blah
    }
    blah blah
    blah blah
  }

  four {
    blah blah
    blah {
      blah blah
      blah blah
    }
    blah blah
    blah blah
  }


Now, as a human, it's pretty obvious that one is missing the } character, since two is the next function. Of course, mIRC has no clue that two would be the start of the new function, so it tries to guess where the missing } character is. From personal experience, I've found mIRC jumping down far into my code, like to the very end of the "three" function, though in practice it's often thousands of lines down.

My suggestion is that, instead of trying to determine the end of the faulty function, which is impractical for a logical process, jump to the start of the faulty function. That way, you're at least at the correct function, instead of practically anywhere in your code.

Finding the start of the faulty function should be easy, since that's the last line which is completely left aligned ("one {" in this case), whereas finding the end of the faulty function relies on a lot of guessing.

The thing is, about half the time it actually does jump to the top of the function. I haven't really been able to determine when it jumps to the top, and when it tries to jump to the bottom. The larger the script is, the greater the chance that mIRC searches for the bottom.


Learning something new every day.