Beispiel #1
0
  public void buildFile(BuildContext context, IProgressMonitor monitor) {
    String contents = null;
    String uri = context.getName();
    try {
      contents = context.getContents();

      RubyParseState parseState = new RubyParseState(contents, uri, 1, version);
      uri = context.getURI().toString();
      context.getAST(parseState);
    } catch (CoreException e) {
      // ignore, just forcing a parse
    }

    Collection<IProblem> problems = new ArrayList<IProblem>();
    for (IParseError parseError : context.getParseErrors()) {
      int severity = parseError.getSeverity().intValue();
      int line = -1;
      if (contents != null) {
        line = getLineNumber(parseError.getOffset(), contents);
      }
      problems.add(
          new Problem(
              severity,
              parseError.getMessage(),
              parseError.getOffset(),
              parseError.getLength(),
              line,
              uri));
    }
    context.putProblems(IMarker.PROBLEM, problems);
  }
  protected void perfValidate(String filename, int iterations) throws Exception {
    // read in the file
    InputStream in =
        FileLocator.openStream(
            Platform.getBundle(JSCorePlugin.PLUGIN_ID),
            Path.fromPortableString("performance/" + filename),
            false);
    IFile file = project.createFile(filename, IOUtil.read(in));
    RebuildIndexJob job = new RebuildIndexJob(project.getURI());
    job.run(null);

    // Ok now actually validate the thing, the real work
    for (int i = 0; i < iterations; i++) {
      EditorTestHelper.joinBackgroundActivities();

      BuildContext context = new BuildContext(file);
      // Don't measure reading in string...
      context.getContents();

      startMeasuring();
      validator.buildFile(context, null);
      stopMeasuring();
    }
    commitMeasurements();
    assertPerformance();
  }
  public void buildFile(BuildContext context, IProgressMonitor monitor) {
    if (context == null) {
      return;
    }

    List<IProblem> problems = new ArrayList<IProblem>();

    String source = context.getContents();
    URI uri = context.getURI();
    String path = uri.toString();

    String report = getReport(source, uri);
    List<String> filters = getFilters();
    processErrorsInReport(report, path, problems, filters);
    processWarningsInReport(report, path, problems, filters);

    context.putProblems(ICSSConstants.W3C_PROBLEM, problems);
  }
  protected void perfValidate(String filename, int iterations) throws Exception {
    // read in the file
    URL url =
        FileLocator.find(
            Platform.getBundle(JSCorePlugin.PLUGIN_ID),
            Path.fromPortableString("performance/" + filename),
            null);
    File file = ResourceUtil.resourcePathToFile(url);
    IFileStore fileStore = EFS.getStore(file.toURI());

    // Ok now actually validate the thing, the real work
    for (int i = 0; i < iterations; i++) {
      EditorTestHelper.joinBackgroundActivities();

      // Force a re-parse every time so we're comparing apples to apples for JSLint
      BuildContext context =
          new FileStoreBuildContext(fileStore) {
            @Override
            protected ParseResult parse(
                String contentType, IParseState parseState, WorkingParseResult working)
                throws Exception {
              if (reparseEveryTime()) {
                return new JSParser().parse(parseState);
              }
              return super.parse(contentType, parseState, working);
            }
          };
      // Don't measure reading in string...
      context.getContents();

      startMeasuring();
      validator.buildFile(context, null);
      stopMeasuring();
    }
    commitMeasurements();
    assertPerformance();
  }