Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 14, 2014
  1. @dragos

    Package structure reorganisation.

    dragos authored
    This commit keeps all filenames unchanged, but builds a cleaner
    package structure of the IDE.
    
    There are only 5 top-level packages now:
    - core
    - ui
    - logger
    - util
    - refactoring
    
    Code is split in internal and API packages. Note that this commit
    only touches directories, and the API work (clean up, documentation,
    interfaces) will follow.
    
    The guideline was to keep related code together. The only exception is
     ui code, that is moved to its top-level package. Additional dimensions
     (for example, following Eclipse concepts like launchers or preferences
     would make it too hard to decide what goes where).
    
    Two unused files were removed:
    
    - JVMUtils
    - util/Colors.scala
    
    This organisation makes it easier to see duplicated functionality (like
    several RegionOps implicit classes). However, to keep things simple, that work is delayed to follow up PRs, so code changes can be independently 
    and easily reviewed.
Commits on Jan 10, 2014
  1. @tbje

    Using the enclosed type to fix completion and imports for inner classes.

    tbje authored
    Make sure that the enclosing object is passed to the indexer also for modules.
    
    Fix #1002002
Commits on Jun 30, 2013
  1. @sschaef
Commits on Jun 24, 2013
  1. @huitseeker

    In the immortal words of @paulp:

    huitseeker authored
     "Can we please, please not do this:
    
      import PatternMatchingStats._
      import global.{phase, currentRun, Symbol,
        Apply, Bind, CaseDef, ClassInfoType, Ident, Literal, Match,
        Alternative, Constant, EmptyTree, Select, Star, This, Throw, Typed, UnApply, (...)"
    
    Let's simplify merges, by making our imports mono-line !
    
    Thanksfully, in the IDE, we don't do (many) *mutli-line* braced Imports, so it
    was enough to filter them with the following one-liner:
    
    for i in `find ./ -type f -name "*.scala"`; do perl -nle 'if (m/^(\s*)import\s([^\n]+?){([^}]*?)}$/smg){my ($s,$x,@y)=($1,$2,split /,\s*(?!_|\s)/,$3); foreach $dep (@y){$dep =~ s/^\s+|\s+$//g; $dep=($dep =~ m/=>/)?"{ $dep }":$dep;print "${s}import $x$dep";}} else {print $_;}' $i > $i.nu; mv $i.nu $i; done
    
    Note the negative lookahead to avoind busting final wildcards in
    braced imports (see the Spec version 2.9, section 4.7), .
    
    If you want to do this on a repo that contains multi-line braced
    imports, look into unsetting the special variable '$/' of perl, and
    relax the condition on the presence of new lines in the second capture
    group of the regex above. I strongly advise against doing this
    automatically on such a repo, though.
    
    Fixes of multiline braced imports (manual).
    
    Let this be the end of this lazy, messy, mergepain-inducing practice.
    
    Fixing test relying on braced import.
Commits on May 31, 2013
  1. @sschaef

    Update of codebase to conform the rules of Scalastyle

    sschaef authored
    This commit contains:
    
    - Correction of tests that rely on trailing white spaces.
    - A fix of a package name in a test unit.
    - Removal of trailing white spaces and tabs in the whole project.
      The changes are all done automatically with the following
      commands:
    
      (Conversion of tabs to white spaces)
      find . -iname "*.scala" -print0 | xargs -0 sed -i 's/\t/  /g'
    
      (Removal of trailing white spaces)
      find . -iname "*.scala" -print0 | xargs -0 sed -i 's/ *$//'
    
    - To is some content added to an empty Scala file to solve a
      Scalastyle warning.
Commits on Apr 23, 2013
  1. @dragos @huitseeker

    JVMUtil went away, workaround that.

    dragos authored huitseeker committed
Commits on Dec 6, 2012
  1. @dotta
Commits on Jul 25, 2012
  1. @dotta

    Correctly index referenced to var's assignments (i.e., calls to the s…

    dotta authored
    …etter)
    
    When looking for reference of a field assignment, both calls to the var's
    setter (i.e., assignment) and getter should be returned. For this to be
    working, the ``ScalaIndexBuilder`` is now checking if the name of a ``RefTree``
    is a setter name, and if that is so a reference to the getter name (which is
    the actual field name) is instead added in the indexer.
    
    An additional interesting point is the element selection in the editor. When in
    the editor the user right click on an element to find his references, the
    symbol attached to the selected code element is typecheck, and in the case of
    an var assignement the typechecked symbol is the setter symbol, while for the
    very same untyped (i.e., not typechecked) tree node the attached symbol is the
    getter symbol.
    
    In ``ScalaCompilationUnit.codeSelect`` setter symbols are turned into getter
    ones because the ``ScalaIndexBuilder`` does not indexes the setter name, but
    only the getter name (which is the actual var's name), as explained in the
    first paragraph of this commit.
Commits on Jul 13, 2012
  1. @dotta

    Correctly index method references for methods definition that take de…

    dotta authored
    …fault arguments
    
    Fix #1001146
Commits on Jun 26, 2012
  1. @dotta

    Index parameterless methods

    dotta authored
    Parameterless methods occur in the Scala AST as ``RefTree`` nodes.
    
    Re #1000067
Commits on Apr 3, 2012
  1. @skyluc

    Fixed the package name set by the index builder

    skyluc authored
    Only the last section was set if the enclosing package was defined.
    Fix #1000855
Commits on Feb 24, 2012
  1. @dragos

    Fixed a long-standing bug in the JavaScalaMapper, by adding an askOpt…

    dragos authored
    …ion when looking at TypeTree.symbol.
    
    Also removed a bunch of useless logging.
Commits on Feb 3, 2012
  1. @dotta

    Improved logging infrastructure and plugged Log4J in the scala-ide.sd…

    dotta authored
    …t.core
    
    project.
    
    We used to have too many alternatives to create log items (Eclipse Log
    framework, our ad-hoc naive internal Logger and println statements originating
    from scalac). In short, we did not have an ideal logging infrastructure.
    
    Now, I plugged Log4J as the backend logger (I'll refer to it as the "default
    logger" in the rest of this commit message), which replaces our naive ad-hoc
    Logger. Further, all log events occurring in the Eclipse Log Framework are now
    *forwarded* to the default logger. Also, the Standard Output and Standard Error
    are *redirected* to the default logger.  The  goal is to have a single place
    to consult the log, and that is now the *scala-ide.log* file that is produced
    by the default logger, located in
    
      ${workspace}/.metadata/.plugin/org.scala-ide.sdt.core/
    
    It's easy to consult the log from within Eclipse, just open the Eclipse
    Preferences, then Scala > Logging, and there is a link to open the
    *scala-ide.log* file in the editor (though, mind that it is not automatically
    refreshed while it's open).
    
    From the same preference's page, you can also control the amount of produced
    log, i.e., you can set the log level that better suits you (the default level
    is WARNING).  If needed, you can also enable a console appender to print all
    produced log items in the console (this is quite handy when doing development
    on the Scala IDE sources).
    
    To get a handle on the loggers you simply need to mix-in the HasLogger trait,
    which contains a reference to both the default logger and the Eclipse Log. You
    may wonder why we have two loggers. The reason is simple, if you want to
    communicate a message to the user, you should use the Eclipse Log. This becayse
    messages sent to the Eclipse Log are shown in the Eclipse Log View (remember
    that all messages sent to the Eclipse Log are also forwarded to the default
    logger, so you don't need to log the same message twice). In all other cases,
    you should use th default logger.
    
    Finally, I removed the "plugininfo" option, which it was used to enable debug
    information in the ScalaIndexBuilder. As a matter of fact, the amount of logged
    information can now be easily controlled through Log Levels.
    
    One element I'm not happy with is that I plugged Log4J within the
    scala-ide.sdt.core project and not as an external plug-in. I've tried to do so
    but failed due to my lack of understanding of OSGi.  This is something that I
    believe we should do at some point (maybe someone can help with this?!).
    
    Fixes #1000880.
Commits on Jan 18, 2012
  1. @dotta

    Merged branch platform/indigo-3.7 back in master (all changes have been

    dotta authored
    squashed in a single commit). Thanks a lot Eric for your great work.
    
    Here follows the list of changes applied in this commit:
    
    - Created a repo.ajdt entry and use 2.1.3 for JDT 3.7 (we could also use AJDT
      2.2 snapshot, but I still think it's better to use the currently released
      AJDT and move to 2.2 only after it is officially released).
    
    - Use Eclipse Indigo release site (this fixes JDK 7 builds).
    
    - Pass isMember correctly derived if the owner is a class.  Obtain jdtFlags
      using ScalaJavaMapper.mapModifiers(symbol)
    
    - Add flags and methodParameter to ScalaLocalVariableElement.
    
    Re #1000852.
Commits on Jan 16, 2012
  1. @dragos
Commits on Oct 7, 2011
  1. @dotta

    Unified logging under a single component Re #1000649. As part of this…

    dotta authored
    … commit I have replaced all calls to println with logger.debug or logger.info. This is much cleaner, IMO.
    
    There were mainly two reasons for refacting and unify the logger:
    
    1) Testing. It was previously impossible to mock the logger, which is a problem because I couldn't create a functional test for Re #1000531.
    
    2) Eventually we want to use Log4J (or similar) as a back-end logger (which ideally could be easily configured by customers). This is something we yet didn't explore and it will likely be tackled after releasing 2.0.
Commits on Sep 28, 2011
  1. @dragos

    Switched to SBT builder by default. Moved IDESettings from package un…

    dragos authored
    …til to 'properties', to be together with
    
    the other Scala compiler settings.
Commits on Aug 31, 2011
  1. @dragos
Commits on Jul 14, 2011
  1. @dragos
Commits on Jul 12, 2011
  1. @dragos

    Fixed Typo in comment.

    dragos authored
Commits on Jul 11, 2011
  1. @dragos

    Fixed #1000470. Fixed #1000413. Don't report <empty> package in index…

    dragos authored
    …er and structure builder. Fixes crash in Java completions.
  2. @dragos
Commits on Jul 7, 2011
  1. @dragos
  2. @dragos

    Fixed #1000405. Tests are found even when the test files are closed. …

    dragos authored
    …The indexer is now correctly reporting annotations.
Commits on Jan 27, 2011
  1. @vigdorchik
Commits on Jan 26, 2011
  1. @vigdorchik
Commits on Jan 19, 2011
  1. @vigdorchik

    More indexer beautifying.

    vigdorchik authored
  2. @vigdorchik
Commits on Nov 30, 2010
  1. @hubertp
  2. @hubertp

    Added separate page for Scala plugin options (only disable/enable ind…

    hubertp authored
    …exer printlns for now). Plus refactored all settings pages.
Commits on Oct 14, 2010
  1. @vigdorchik
Commits on Jun 21, 2010
  1. @milessabin
Something went wrong with that request. Please try again.