From e1f441a6660fc708e9505205b7f1f7bfc91bd728 Mon Sep 17 00:00:00 2001 From: rytz Date: Sun, 11 Apr 2010 19:11:40 +0000 Subject: [PATCH] moved plugin folder back to 'misc/scala-devel/plugins'. moved bash completion to scala-tool-support (see r21449). include continuations in compiler sbaz package. replaced some tabs by spaces. review by extempore. git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@21452 5e8d7ff9-d8ef-0310-90f0-a4852d11357a --- build.xml | 93 ++++++------ src/build/pack.xml | 4 +- .../scala/tools/util/BashCompletion.scala | 132 ------------------ .../scala/tools/util/PathResolver.scala | 8 +- 4 files changed, 47 insertions(+), 190 deletions(-) delete mode 100644 src/compiler/scala/tools/util/BashCompletion.scala diff --git a/build.xml b/build.xml index 7e09d3413..d59863277 100644 --- a/build.xml +++ b/build.xml @@ -230,18 +230,18 @@ INITIALISATION - - + + - - - - - - + + + + + + @@ -623,15 +623,15 @@ QUICK BUILD (QUICK) file="${src.dir}/continuations/plugin/scalac-plugin.xml" todir="${build-quick.dir}/classes/continuations-plugin"/> - - + + @@ -852,13 +852,13 @@ PACKED QUICK BUILD (PACK) - - + + @@ -933,15 +933,6 @@ PACKED QUICK BUILD (PACK) - - - - - - - @@ -1130,15 +1121,15 @@ BOOTSTRAPPING BUILD (STRAP) file="${src.dir}/continuations/plugin/scalac-plugin.xml" todir="${build-strap.dir}/classes/continuations-plugin"/> - - + + @@ -1507,27 +1498,27 @@ BOOTRAPING TEST AND TEST SUITE - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + @@ -1554,13 +1545,9 @@ DISTRIBUTION - - - - - - - + + + diff --git a/src/build/pack.xml b/src/build/pack.xml index 5c5c8fbd8..fa6c4ade2 100644 --- a/src/build/pack.xml +++ b/src/build/pack.xml @@ -102,6 +102,8 @@ MAIN DISTRIBUTION SBAZ dir="${dist.dir}/bin" includes="scala,scala.bat,scalac,scalac.bat,scaladoc,scaladoc.bat,fsc,fsc.bat"/> + @@ -200,7 +202,7 @@ MAIN DISTRIBUTION SBAZ - + diff --git a/src/compiler/scala/tools/util/BashCompletion.scala b/src/compiler/scala/tools/util/BashCompletion.scala deleted file mode 100644 index 7597c1793..000000000 --- a/src/compiler/scala/tools/util/BashCompletion.scala +++ /dev/null @@ -1,132 +0,0 @@ -/* NSC -- new Scala compiler - * Copyright 2006-2010 LAMP/EPFL - * @author Paul Phillips - */ - -package scala.tools -package util - -import nsc.{ Global, Settings } - -/** Examines Settings and generates a bash completion file - * containing both bells and whistles. - */ -object BashCompletion { - val completionTemplate = """ -# Bash Scala completion -# -# Add this file to /etc/bash_completion.d/ (or your local equivalent) -# or place a line like this in your .bashrc or .profile: -# -# . /path/to/file/scala_completion.sh -# -# For more information, see: -# -# http://bash-completion.alioth.debian.org/ -# -# This file is generated by running scala.tools.util.BashCompletion. -# - -SCALA_PHASES="@@PHASES@@" -SCALA_PHASE_SETTINGS=( @@PHASE_SETTINGS@@ ) -SCALA_OPTIONS="@@OPTIONS@@" -SCALA_OPTIONS_EXPANDED="@@OPTIONS_EXPANDED@@" - -_scala_completion() -{ - local cur prev opts colonprefixes - - COMPREPLY=() - opts="" - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - colonprefixes=${cur%"${cur##*:}"} - - # special case escaping madness because bash treats : as a separator. - case "${cur}" in - -*:*) - precolon=$(echo "${cur}" | sed 's/:.*//g') - - for p in ${SCALA_PHASE_SETTINGS[@]}; do - if [[ "${precolon}" == "${p}" ]] ; then - cur=$(echo "${cur}" | sed 's/.*://g') # cut cur down to postcolon part - opts=${SCALA_PHASES} - fi - done - - if [ "${opts}" == "" ] ; then - opts=${SCALA_OPTIONS_EXPANDED} - fi - ;; - esac - - if [ "${opts}" == "" ] ; then - opts=${SCALA_OPTIONS} - fi - - COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) - - local i=${#COMPREPLY[*]} - while [ $((--i)) -ge 0 ]; do - COMPREPLY[$i]=${COMPREPLY[$i]#"$colonprefixes"} - done - - return 0 -} - -_scala_commands() -{ -@@PROGRAMS@@ -} -_scala_commands - """.trim - - private lazy val settings = new Settings() - import settings._ - - val phaseNames = "all" :: (new Global(settings) phaseNames) - val phaseSettings = settings.visibleSettings collect { case x: PhasesSetting => "\"" + x.name + "\"" } - - def settingStrings(s: Setting, expanded: Boolean) = s match { - case x: ChoiceSetting => if (expanded) x.choices map (x.name + ":" + _) else List(x.name + ":") - case x: PhasesSetting => List(x.name + ":") - case x => List(x.name) - } - - /** We embed one list which stops at : and another where all choice settings are expanded out - * to include the choices. - */ - def settingNames = settings.visibleSettings.toList flatMap (x => settingStrings(x, false)) sorted - def settingNamesExpanded = settings.visibleSettings.toList flatMap (x => settingStrings(x, true)) sorted - - def commandForName(name: String) = " complete -o default -F _scala_completion " + name + "\n" - def interpolate(template: String, what: (String, String)*) = - what.foldLeft(template) { - case (text, (key, value)) => - val token = "@@" + key + "@@" - - (text indexOf token) match { - case -1 => error("Token '%s' does not exist." format token) - case idx => (text take idx) + value + (text drop idx drop token.length) - } - } - - def create(cmds: List[String]) = { - interpolate(completionTemplate, - "PROGRAMS" -> (cmds map commandForName mkString ""), - "OPTIONS" -> (settingNames mkString " "), - "OPTIONS_EXPANDED" -> (settingNamesExpanded mkString " "), - "PHASES" -> (phaseNames mkString " "), - "PHASE_SETTINGS" -> (phaseSettings mkString " ") - ) - } - - def main(args: Array[String]): Unit = { - val commands = if (args.isEmpty) List("fsc", "scala", "scalac", "scaladoc") else args.toList - val result = create(commands) - if (result contains "@@") - error("Some tokens were not replaced: text is " + result) - - println(result) - } -} \ No newline at end of file diff --git a/src/compiler/scala/tools/util/PathResolver.scala b/src/compiler/scala/tools/util/PathResolver.scala index 88d4eac2e..bf4fd819a 100644 --- a/src/compiler/scala/tools/util/PathResolver.scala +++ b/src/compiler/scala/tools/util/PathResolver.scala @@ -119,10 +119,10 @@ object PathResolver { case _ => "" } - def scalaExtDirs = Environment.scalaExtDirs - def scalaPluginDirs = List("misc", "scala-devel", "plugins") - def scalaPluginPath = join(scalaPluginDirs map (scalaHomeDir / _ path): _*) - + def scalaExtDirs = Environment.scalaExtDirs + + def scalaPluginPath = (scalaHomeDir / "misc" / "scala-devel" / "plugins").path + override def toString = """ |object Defaults { | scalaHome = %s