diff -Nru monodevelop-python-2.6/configure monodevelop-python-2.8.5/configure --- monodevelop-python-2.6/configure 2011-09-07 06:03:18.000000000 +0000 +++ monodevelop-python-2.8.5/configure 2011-12-09 21:05:15.000000000 +0000 @@ -1,10 +1,10 @@ #!/bin/bash -VERSION=2.6 +VERSION=2.8.5 PACKAGE=monodevelop-python prefix=/usr/local config=DEBUG configurations=" RELEASE DEBUG" -common_packages=" gtk-sharp-2.0;2.12.8 mono-addins;0.3 monodevelop;2.6 monodevelop-core-addins;2.5.93" +common_packages=" gtk-sharp-2.0;2.12.8 mono-addins;0.3 monodevelop;2.8.5 monodevelop-core-addins;2.7" usage () @@ -133,6 +133,8 @@ datadir=$prefix/share fi +sed -e "s,@VERSION@,$VERSION," < monodevelop-python.spec.in > monodevelop-python.spec + echo "prefix=$prefix" > config.make echo "libdir=$libdir" >> config.make echo "bindir=$bindir" >> config.make diff -Nru monodevelop-python-2.6/debian/changelog monodevelop-python-2.8.5/debian/changelog --- monodevelop-python-2.6/debian/changelog 2011-09-12 16:55:45.000000000 +0000 +++ monodevelop-python-2.8.5/debian/changelog 2011-12-19 16:04:30.000000000 +0000 @@ -1,3 +1,20 @@ +monodevelop-python (2.8.5-1) experimental; urgency=low + + * [f01ffb0] Imported Upstream version 2.8.5 + * [4c198cf] Bump build dependencies to MonoDevelop 2.8.5. + * [26c2ea2] Bump binary dependencies to MonoDevelop 2.8.5. + + -- Jo Shields Mon, 19 Dec 2011 16:04:20 +0000 + +monodevelop-python (2.8.2-1) experimental; urgency=low + + * [5bb250b] Switch to using bz2 from upstream, not gz. + * [bc614e0] Imported Upstream version 2.8.2 + * [e6e9cfb] Switch dependencies to MonoDevelop 2.8.2. + * [ebe5959] Switch build-dependencies to MonoDevelop 2.8.2. + + -- Jo Shields Thu, 10 Nov 2011 17:51:45 +0000 + monodevelop-python (2.6-1) experimental; urgency=low * [bbf3c42] Update debian/watch for Xamarin-hosted source. diff -Nru monodevelop-python-2.6/debian/control monodevelop-python-2.8.5/debian/control --- monodevelop-python-2.6/debian/control 2011-09-12 16:55:03.000000000 +0000 +++ monodevelop-python-2.8.5/debian/control 2011-12-19 16:03:33.000000000 +0000 @@ -6,9 +6,9 @@ Build-Depends: debhelper (>= 7.0.50~) Build-Depends-Indep: cli-common-dev (>= 0.8~), mono-devel (>= 2.10), - monodevelop (>= 2.6), - monodevelop-versioncontrol (>= 2.6), - monodevelop-nunit (>= 2.6), + monodevelop (>= 2.8.5), + monodevelop-versioncontrol (>= 2.8.5), + monodevelop-nunit (>= 2.8.5), libgtk2.0-cil-dev, libmono-addins-cil-dev Standards-Version: 3.9.2 diff -Nru monodevelop-python-2.6/debian/rules monodevelop-python-2.8.5/debian/rules --- monodevelop-python-2.6/debian/rules 2011-09-12 16:55:09.000000000 +0000 +++ monodevelop-python-2.8.5/debian/rules 2011-12-19 16:03:53.000000000 +0000 @@ -9,7 +9,7 @@ DEB_SOURCE_NAME = $(shell dpkg-parsechangelog -l$(DEBIAN_DIR)/changelog | grep ^Source | cut -d" " -f2) VERSION = $(shell echo $(DEB_VERSION) | cut -d"-" -f1 | sed 's/+dfsg.*//') -MDVERSION = 2.6 +MDVERSION = 2.8.5 include /usr/share/cli-common/cli.make diff -Nru monodevelop-python-2.6/debian/watch monodevelop-python-2.8.5/debian/watch --- monodevelop-python-2.6/debian/watch 2011-09-12 16:53:38.000000000 +0000 +++ monodevelop-python-2.8.5/debian/watch 2011-11-10 17:49:41.000000000 +0000 @@ -1,3 +1,3 @@ version=2 opts=dversionmangle=s/\+dfsg// \ - http://download.mono-project.com/sources/monodevelop-python/monodevelop-python-([\d\.]+)\.tar\.gz + http://download.mono-project.com/sources/monodevelop-python/monodevelop-python-([\d\.]+)\.tar\.bz2 diff -Nru monodevelop-python-2.6/Makefile monodevelop-python-2.8.5/Makefile --- monodevelop-python-2.6/Makefile 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/Makefile 2011-12-07 16:41:12.000000000 +0000 @@ -56,7 +56,6 @@ esac \ done (make dist-local distdir=$(PACKAGE)-$(VERSION)) - make make post-dist-hook "distsir=$$distdir" tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION) rm -rf $(PACKAGE)-$(VERSION) diff -Nru monodevelop-python-2.6/PyBinding/gtk-gui/gui.stetic monodevelop-python-2.8.5/PyBinding/gtk-gui/gui.stetic --- monodevelop-python-2.6/PyBinding/gtk-gui/gui.stetic 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/gtk-gui/gui.stetic 2011-12-07 16:41:12.000000000 +0000 @@ -6,28 +6,24 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -57,7 +53,7 @@ - 5 + 6 2 6 6 @@ -68,6 +64,26 @@ + + + Runtime location: + alignment2 + + + 1 + 2 + True + Fill + Fill + False + True + False + False + True + False + + + Python _Options: @@ -75,8 +91,8 @@ m_PythonOptions - 1 - 2 + 2 + 3 True Fill Fill @@ -96,8 +112,8 @@ m_ModuleEntry - 2 - 3 + 3 + 4 False Fill Fill @@ -117,8 +133,8 @@ - 2 - 3 + 3 + 4 1 2 False @@ -141,8 +157,8 @@ True - 3 - 4 + 4 + 5 2 False Fill @@ -162,8 +178,8 @@ - 1 - 2 + 2 + 3 1 2 True @@ -196,6 +212,26 @@ False + + + + + + 1 + 2 + 1 + 2 + True + Fill + Fill + False + True + False + False + True + False + + diff -Nru monodevelop-python-2.6/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs monodevelop-python-2.8.5/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs --- monodevelop-python-2.6/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs 2011-12-07 16:41:12.000000000 +0000 @@ -5,41 +5,26 @@ public partial class PythonOptionsWidget { private global::Gtk.VBox vbox1; - private global::Gtk.Label label1; - private global::Gtk.Alignment alignment1; - private global::Gtk.Table table1; - + private global::Gtk.Label label2; private global::Gtk.Label label4; - private global::Gtk.Label label5; - private global::Gtk.Entry m_ModuleEntry; - private global::Gtk.CheckButton m_OptimizeCheckBox; - private global::Gtk.Entry m_PythonOptions; - private global::Gtk.ComboBox m_RuntimeCombo; - + private global::MonoDevelop.Components.FileEntry m_RuntimeFileEntry; private global::Gtk.Label label3; - private global::Gtk.Alignment alignment2; - private global::Gtk.HBox hbox1; - private global::Gtk.ScrolledWindow scrolledwindow1; - private global::Gtk.TreeView m_PathsTreeView; - private global::Gtk.VBox vbox2; - private global::Gtk.Button m_AddPathButton; - private global::Gtk.Button m_RemovePathButton; - + protected virtual void Build () { global::Stetic.Gui.Initialize (this); @@ -53,45 +38,55 @@ // Container child vbox1.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; - this.label1.Xalign = 0f; + this.label1.Xalign = 0F; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Runtime"); this.label1.UseMarkup = true; this.vbox1.Add (this.label1); - global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.label1])); + global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.label1])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child vbox1.Gtk.Box+BoxChild - this.alignment1 = new global::Gtk.Alignment (0.5f, 0.5f, 1f, 1f); + this.alignment1 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.alignment1.Name = "alignment1"; this.alignment1.LeftPadding = ((uint)(12)); // Container child alignment1.Gtk.Container+ContainerChild - this.table1 = new global::Gtk.Table (((uint)(5)), ((uint)(2)), false); + this.table1 = new global::Gtk.Table (((uint)(6)), ((uint)(2)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild + this.label2 = new global::Gtk.Label (); + this.label2.Name = "label2"; + this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Runtime location:"); + this.table1.Add (this.label2); + global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1 [this.label2])); + w2.TopAttach = ((uint)(1)); + w2.BottomAttach = ((uint)(2)); + w2.XOptions = ((global::Gtk.AttachOptions)(4)); + w2.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild this.label4 = new global::Gtk.Label (); this.label4.Name = "label4"; this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("Python _Options:"); this.label4.UseUnderline = true; this.table1.Add (this.label4); - global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1[this.label4])); - w2.TopAttach = ((uint)(1)); - w2.BottomAttach = ((uint)(2)); - w2.XOptions = ((global::Gtk.AttachOptions)(4)); - w2.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1 [this.label4])); + w3.TopAttach = ((uint)(2)); + w3.BottomAttach = ((uint)(3)); + w3.XOptions = ((global::Gtk.AttachOptions)(4)); + w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label5 = new global::Gtk.Label (); this.label5.Name = "label5"; this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("Default _Module:"); this.label5.UseUnderline = true; this.table1.Add (this.label5); - global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.label5])); - w3.TopAttach = ((uint)(2)); - w3.BottomAttach = ((uint)(3)); - w3.XOptions = ((global::Gtk.AttachOptions)(4)); - w3.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1 [this.label5])); + w4.TopAttach = ((uint)(3)); + w4.BottomAttach = ((uint)(4)); + w4.XOptions = ((global::Gtk.AttachOptions)(4)); + w4.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.m_ModuleEntry = new global::Gtk.Entry (); this.m_ModuleEntry.CanFocus = true; @@ -99,12 +94,12 @@ this.m_ModuleEntry.IsEditable = true; this.m_ModuleEntry.InvisibleChar = '●'; this.table1.Add (this.m_ModuleEntry); - global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1[this.m_ModuleEntry])); - w4.TopAttach = ((uint)(2)); - w4.BottomAttach = ((uint)(3)); - w4.LeftAttach = ((uint)(1)); - w4.RightAttach = ((uint)(2)); - w4.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_ModuleEntry])); + w5.TopAttach = ((uint)(3)); + w5.BottomAttach = ((uint)(4)); + w5.LeftAttach = ((uint)(1)); + w5.RightAttach = ((uint)(2)); + w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.m_OptimizeCheckBox = new global::Gtk.CheckButton (); this.m_OptimizeCheckBox.CanFocus = true; @@ -113,11 +108,11 @@ this.m_OptimizeCheckBox.DrawIndicator = true; this.m_OptimizeCheckBox.UseUnderline = true; this.table1.Add (this.m_OptimizeCheckBox); - global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.m_OptimizeCheckBox])); - w5.TopAttach = ((uint)(3)); - w5.BottomAttach = ((uint)(4)); - w5.RightAttach = ((uint)(2)); - w5.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_OptimizeCheckBox])); + w6.TopAttach = ((uint)(4)); + w6.BottomAttach = ((uint)(5)); + w6.RightAttach = ((uint)(2)); + w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.m_PythonOptions = new global::Gtk.Entry (); this.m_PythonOptions.CanFocus = true; @@ -125,39 +120,50 @@ this.m_PythonOptions.IsEditable = true; this.m_PythonOptions.InvisibleChar = '●'; this.table1.Add (this.m_PythonOptions); - global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.m_PythonOptions])); - w6.TopAttach = ((uint)(1)); - w6.BottomAttach = ((uint)(2)); - w6.LeftAttach = ((uint)(1)); - w6.RightAttach = ((uint)(2)); - w6.XOptions = ((global::Gtk.AttachOptions)(4)); - w6.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_PythonOptions])); + w7.TopAttach = ((uint)(2)); + w7.BottomAttach = ((uint)(3)); + w7.LeftAttach = ((uint)(1)); + w7.RightAttach = ((uint)(2)); + w7.XOptions = ((global::Gtk.AttachOptions)(4)); + w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.m_RuntimeCombo = global::Gtk.ComboBox.NewText (); this.m_RuntimeCombo.Name = "m_RuntimeCombo"; this.table1.Add (this.m_RuntimeCombo); - global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1[this.m_RuntimeCombo])); - w7.RightAttach = ((uint)(2)); - w7.XOptions = ((global::Gtk.AttachOptions)(4)); - w7.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_RuntimeCombo])); + w8.RightAttach = ((uint)(2)); + w8.XOptions = ((global::Gtk.AttachOptions)(4)); + w8.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.m_RuntimeFileEntry = new global::MonoDevelop.Components.FileEntry (); + this.m_RuntimeFileEntry.Name = "m_RuntimeFileEntry"; + this.table1.Add (this.m_RuntimeFileEntry); + global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_RuntimeFileEntry])); + w9.TopAttach = ((uint)(1)); + w9.BottomAttach = ((uint)(2)); + w9.LeftAttach = ((uint)(1)); + w9.RightAttach = ((uint)(2)); + w9.XOptions = ((global::Gtk.AttachOptions)(4)); + w9.YOptions = ((global::Gtk.AttachOptions)(4)); this.alignment1.Add (this.table1); this.vbox1.Add (this.alignment1); - global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.alignment1])); - w9.Position = 1; - w9.Expand = false; + global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.alignment1])); + w11.Position = 1; + w11.Expand = false; // Container child vbox1.Gtk.Box+BoxChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; - this.label3.Xalign = 0f; + this.label3.Xalign = 0F; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("Module Paths"); this.label3.UseMarkup = true; this.vbox1.Add (this.label3); - global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.label3])); - w10.Position = 2; - w10.Expand = false; - w10.Fill = false; + global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.label3])); + w12.Position = 2; + w12.Expand = false; + w12.Fill = false; // Container child vbox1.Gtk.Box+BoxChild - this.alignment2 = new global::Gtk.Alignment (0.5f, 0.5f, 1f, 1f); + this.alignment2 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.alignment2.Name = "alignment2"; this.alignment2.LeftPadding = ((uint)(12)); // Container child alignment2.Gtk.Container+ContainerChild @@ -170,17 +176,17 @@ this.scrolledwindow1.Name = "scrolledwindow1"; this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow1.Gtk.Container+ContainerChild - global::Gtk.Viewport w11 = new global::Gtk.Viewport (); - w11.ShadowType = ((global::Gtk.ShadowType)(0)); + global::Gtk.Viewport w13 = new global::Gtk.Viewport (); + w13.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.m_PathsTreeView = new global::Gtk.TreeView (); this.m_PathsTreeView.CanFocus = true; this.m_PathsTreeView.Name = "m_PathsTreeView"; - w11.Add (this.m_PathsTreeView); - this.scrolledwindow1.Add (w11); + w13.Add (this.m_PathsTreeView); + this.scrolledwindow1.Add (w13); this.hbox1.Add (this.scrolledwindow1); - global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.scrolledwindow1])); - w14.Position = 0; + global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.scrolledwindow1])); + w16.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; @@ -193,10 +199,10 @@ this.m_AddPathButton.UseUnderline = true; this.m_AddPathButton.Label = "gtk-add"; this.vbox2.Add (this.m_AddPathButton); - global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.m_AddPathButton])); - w15.Position = 0; - w15.Expand = false; - w15.Fill = false; + global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.m_AddPathButton])); + w17.Position = 0; + w17.Expand = false; + w17.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.m_RemovePathButton = new global::Gtk.Button (); this.m_RemovePathButton.Sensitive = false; @@ -206,23 +212,24 @@ this.m_RemovePathButton.UseUnderline = true; this.m_RemovePathButton.Label = "gtk-remove"; this.vbox2.Add (this.m_RemovePathButton); - global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.m_RemovePathButton])); - w16.Position = 1; - w16.Expand = false; - w16.Fill = false; + global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.m_RemovePathButton])); + w18.Position = 1; + w18.Expand = false; + w18.Fill = false; this.hbox1.Add (this.vbox2); - global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox2])); - w17.Position = 1; - w17.Expand = false; - w17.Fill = false; + global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.vbox2])); + w19.Position = 1; + w19.Expand = false; + w19.Fill = false; this.alignment2.Add (this.hbox1); this.vbox1.Add (this.alignment2); - global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.alignment2])); - w19.Position = 3; + global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.alignment2])); + w21.Position = 3; this.Add (this.vbox1); if ((this.Child != null)) { this.Child.ShowAll (); } + this.label2.MnemonicWidget = this.alignment2; this.label4.MnemonicWidget = this.m_PythonOptions; this.label5.MnemonicWidget = this.m_ModuleEntry; this.Show (); diff -Nru monodevelop-python-2.6/PyBinding/Makefile monodevelop-python-2.8.5/PyBinding/Makefile --- monodevelop-python-2.6/PyBinding/Makefile 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/Makefile 2011-12-07 16:41:12.000000000 +0000 @@ -88,9 +88,11 @@ PyBinding.Parser/PythonResolver.cs \ PyBinding.Runtime/AbstractPythonRuntime.cs \ PyBinding.Runtime/IPythonRuntime.cs \ + PyBinding.Runtime/IronPythonRuntime.cs \ PyBinding.Runtime/Python25Runtime.cs \ PyBinding.Runtime/Python26Runtime.cs \ PyBinding.Runtime/Python27Runtime.cs \ + PyBinding/IronPythonExecutionHandler.cs \ PyBinding/PythonConfiguration.cs \ PyBinding/PythonExecutionCommand.cs \ PyBinding/PythonExecutionHandler.cs \ diff -Nru monodevelop-python-2.6/PyBinding/PyBinding/IronPythonExecutionHandler.cs monodevelop-python-2.8.5/PyBinding/PyBinding/IronPythonExecutionHandler.cs --- monodevelop-python-2.6/PyBinding/PyBinding/IronPythonExecutionHandler.cs 1970-01-01 00:00:00.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding/IronPythonExecutionHandler.cs 2011-12-07 16:41:12.000000000 +0000 @@ -0,0 +1,51 @@ +// IronPythonExecutionHandler.cs +// +// Copyright (c) 2011 Carlos Alberto Cortez +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.IO; +using MonoDevelop.Core; +using MonoDevelop.Core.Execution; + +using PyBinding.Runtime; + +namespace PyBinding +{ + public class IronPythonExecutionHandler : IExecutionHandler + { + public bool CanExecute (ExecutionCommand command) + { + return command is PythonExecutionCommand; + } + + public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console) + { + var config = ((PythonExecutionCommand)command).Configuration; + var runtime = (IronPythonRuntime)config.Runtime; + + var args = runtime.GetArguments (config); + string dir = Path.GetFullPath (config.ParentItem.BaseDirectory); + + var cmd = new DotNetExecutionCommand (runtime.Path, String.Join (" ", args), dir, config.EnvironmentVariables); + return cmd.TargetRuntime.GetExecutionHandler ().Execute (cmd, console); + } + } +} diff -Nru monodevelop-python-2.6/PyBinding/PyBinding/PythonExecutionHandler.cs monodevelop-python-2.8.5/PyBinding/PyBinding/PythonExecutionHandler.cs --- monodevelop-python-2.6/PyBinding/PyBinding/PythonExecutionHandler.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding/PythonExecutionHandler.cs 2011-12-07 16:41:12.000000000 +0000 @@ -30,7 +30,23 @@ namespace PyBinding { - public class PythonExecutionHandler: NativePlatformExecutionHandler + public class PythonExecutionHandler: IExecutionHandler + { + public bool CanExecute (ExecutionCommand command) + { + return command is PythonExecutionCommand; + } + + public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console) + { + var config = ((PythonExecutionCommand)command).Configuration; + return config.Runtime.GetExecutionHandler ().Execute (command, console); + } + + } + + // This is our default handler (used by Python2.5/2.6/2.7) + public class CPythonExecutionHandler : NativePlatformExecutionHandler { public override bool CanExecute (ExecutionCommand command) { @@ -38,11 +54,11 @@ } public override IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console) - { + { PythonExecutionCommand cmd = (PythonExecutionCommand) command; string[] args = cmd.Configuration.Runtime.GetArguments (cmd.Configuration); - string dir = Path.GetFullPath (cmd.Configuration.OutputDirectory); + string dir = Path.GetFullPath (cmd.Configuration.OutputDirectory); NativeExecutionCommand ncmd = new NativeExecutionCommand (cmd.Configuration.Runtime.Path, string.Join (" ", args), dir, cmd.Configuration.EnvironmentVariables); return base.Execute (ncmd, console); diff -Nru monodevelop-python-2.6/PyBinding/PyBinding/PythonHelper.cs monodevelop-python-2.8.5/PyBinding/PyBinding/PythonHelper.cs --- monodevelop-python-2.6/PyBinding/PyBinding/PythonHelper.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding/PythonHelper.cs 2011-12-07 16:41:12.000000000 +0000 @@ -109,6 +109,13 @@ // next preferred type. try { + return new Python27Runtime () { + Path = Which ("python2.7") + }; + } + catch {} + + try { return new Python26Runtime () { Path = Which ("python2.6") }; @@ -122,6 +129,13 @@ } catch {} + try { + return new IronPythonRuntime () { + Path = Which ("ipy.exe") + }; + } + catch {} + // look for "python" and what version it is return null; @@ -129,11 +143,13 @@ public static string FindPreferredPython () { + try { return Which ("python2.7"); } catch {} try { return Which ("python2.6"); } catch {} try { return Which ("python2.5"); } catch {} + try { return Which ("python2"); } catch {} try { return Which ("python"); } catch {} throw new FileNotFoundException ("Could not locate python executable"); } } -} \ No newline at end of file +} diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.addin.xml monodevelop-python-2.8.5/PyBinding/PyBinding.addin.xml --- monodevelop-python-2.6/PyBinding/PyBinding.addin.xml 2011-09-07 06:03:18.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.addin.xml 2011-12-09 21:10:11.000000000 +0000 @@ -6,16 +6,16 @@ url = "http://www.monodevelop.com" description = "Python Language binding" category = "Language bindings" - version = "2.6.0"> + version = "2.8.5"> - - - + + + @@ -99,6 +99,7 @@ + diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Gui/PythonEditorCompletion.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Gui/PythonEditorCompletion.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Gui/PythonEditorCompletion.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Gui/PythonEditorCompletion.cs 2011-12-07 16:41:12.000000000 +0000 @@ -114,7 +114,7 @@ } // "self." - if (document.Module != null && triggerWord.Equals ("self.")) { + if (document.Module != null && triggerWord == "self" && completionChar == '.') { var klass = GetClass (document.Module, completionContext.TriggerLine); if (klass == null) return null; // nothing to complete, self not in a class diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs 2011-12-07 16:41:12.000000000 +0000 @@ -53,9 +53,12 @@ { PythonConfiguration config = CurrentConfiguration as PythonConfiguration; + var runtime = widget.Runtime; + runtime.Path = widget.RuntimePath; + + config.Runtime = runtime; config.Module = widget.DefaultModule; config.Optimize = widget.Optimize; - config.Runtime = widget.Runtime; config.PythonOptions = widget.PythonOptions; var paths = new List (widget.PythonPaths); diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs 2011-12-07 16:41:12.000000000 +0000 @@ -60,6 +60,11 @@ m_RuntimeListStore.AppendValues ("Python 2.5", typeof (Python25Runtime)); m_RuntimeListStore.AppendValues ("Python 2.6", typeof (Python26Runtime)); m_RuntimeListStore.AppendValues ("Python 2.7", typeof (Python27Runtime)); + m_RuntimeListStore.AppendValues ("IronPython", typeof (IronPythonRuntime)); + + m_RuntimeCombo.Changed += delegate { + m_RuntimeFileEntry.Path = String.Empty; + }; } public string DefaultModule { @@ -131,12 +136,19 @@ Type t = this.m_RuntimeListStore.GetValue (iter, 1) as Type; if (t == value.GetType ()) { this.m_RuntimeCombo.SetActiveIter (iter); + this.m_RuntimeFileEntry.Path = value.Path; break; } } while (m_RuntimeListStore.IterNext (ref iter)); } } } + + public string RuntimePath { + get { + return m_RuntimeFileEntry.Path; + } + } protected virtual void AddPath_Clicked (object sender, System.EventArgs e) { diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs 2011-12-07 16:41:12.000000000 +0000 @@ -28,6 +28,7 @@ using MonoDevelop.Core; using MonoDevelop.Core.Serialization; +using MonoDevelop.Core.Execution; using MonoDevelop.Projects; using PyBinding; @@ -66,6 +67,7 @@ public abstract object Clone (); public abstract string[] GetArguments (PythonConfiguration config); + public abstract IExecutionHandler GetExecutionHandler (); protected virtual string Resolve (string commandName) { diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Runtime/IPythonRuntime.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/IPythonRuntime.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Runtime/IPythonRuntime.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/IPythonRuntime.cs 2011-12-07 16:41:12.000000000 +0000 @@ -21,6 +21,7 @@ // THE SOFTWARE. using System; +using MonoDevelop.Core.Execution; using PyBinding.Compiler; @@ -59,6 +60,11 @@ } /// + /// Gets the associated execution handler for this specific runtime. + /// + IExecutionHandler GetExecutionHandler (); + + /// /// Builds a list of arguments to pass to the runtime for running /// a project with the passed configuration. /// diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs 1970-01-01 00:00:00.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs 2011-12-07 16:41:12.000000000 +0000 @@ -0,0 +1,96 @@ +// IronPythonRuntime.cs +// +// Copyright (c) 2011 Carlos Alberto Cortez +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +using System; +using System.Collections.Generic; +using MonoDevelop.Core; +using MonoDevelop.Core.Execution; +using MonoDevelop.Core.Serialization; +using MonoDevelop.Projects; + +using PyBinding.Compiler; + +namespace PyBinding.Runtime +{ + public class IronPythonRuntime : AbstractPythonRuntime + { + static readonly string RuntimeName = "IronPython"; + + [ItemProperty ("path")] + string path = String.Empty; + + public override IPythonCompiler Compiler { + get { + return null; + } + } + + public override string Name { + get { + return RuntimeName; + } + } + + public override string Path { + get { + if (String.IsNullOrEmpty (path)) + path = Resolve ("ipy.exe"); + + return path; + } + set { + path = value; + } + } + + public override object Clone () + { + return new IronPythonRuntime () { + Path = path + }; + } + + IExecutionHandler handler; + + public override IExecutionHandler GetExecutionHandler () + { + if (handler == null) + handler = new IronPythonExecutionHandler (); + + return handler; + } + + + public override string[] GetArguments (PythonConfiguration config) + { + var args = new List (); + + if (!String.IsNullOrEmpty (config.Module)) + args.Add (System.IO.Path.ChangeExtension (config.Module, "py")); + + if (!String.IsNullOrEmpty (config.CommandLineParameters)) + args.Add (config.CommandLineParameters); + + return args.ToArray (); + } + } +} + diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Runtime/Python25Runtime.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/Python25Runtime.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Runtime/Python25Runtime.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/Python25Runtime.cs 2011-12-07 16:41:12.000000000 +0000 @@ -25,6 +25,7 @@ using System.IO; using MonoDevelop.Core; +using MonoDevelop.Core.Execution; using MonoDevelop.Projects; using MonoDevelop.Core.Serialization; using MonoDevelop.Projects.CodeGeneration; @@ -81,6 +82,16 @@ }; } + IExecutionHandler handler; + + public override IExecutionHandler GetExecutionHandler () + { + if (handler == null) + handler = new CPythonExecutionHandler (); + + return handler; + } + public override string[] GetArguments (PythonConfiguration config) { List args = new List (); diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Runtime/Python26Runtime.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/Python26Runtime.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Runtime/Python26Runtime.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/Python26Runtime.cs 2011-12-07 16:41:12.000000000 +0000 @@ -25,6 +25,7 @@ using System.IO; using MonoDevelop.Core; +using MonoDevelop.Core.Execution; using MonoDevelop.Projects; using MonoDevelop.Core.Serialization; using MonoDevelop.Projects.CodeGeneration; @@ -81,6 +82,16 @@ Path = this.Path }; } + + IExecutionHandler handler; + + public override IExecutionHandler GetExecutionHandler () + { + if (handler == null) + handler = new CPythonExecutionHandler (); + + return handler; + } public override string[] GetArguments (PythonConfiguration config) { diff -Nru monodevelop-python-2.6/PyBinding/PyBinding.Runtime/Python27Runtime.cs monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/Python27Runtime.cs --- monodevelop-python-2.6/PyBinding/PyBinding.Runtime/Python27Runtime.cs 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/PyBinding.Runtime/Python27Runtime.cs 2011-12-07 16:41:12.000000000 +0000 @@ -26,6 +26,7 @@ using System.IO; using MonoDevelop.Core; +using MonoDevelop.Core.Execution; using MonoDevelop.Projects; using MonoDevelop.Core.Serialization; using MonoDevelop.Projects.CodeGeneration; @@ -82,6 +83,16 @@ Path = this.Path }; } + + IExecutionHandler handler; + + public override IExecutionHandler GetExecutionHandler () + { + if (handler == null) + handler = new CPythonExecutionHandler (); + + return handler; + } public override string[] GetArguments (PythonConfiguration config) { diff -Nru monodevelop-python-2.6/PyBinding/Resources/completion.py monodevelop-python-2.8.5/PyBinding/Resources/completion.py --- monodevelop-python-2.6/PyBinding/Resources/completion.py 2011-09-07 06:03:15.000000000 +0000 +++ monodevelop-python-2.8.5/PyBinding/Resources/completion.py 2011-12-07 16:41:12.000000000 +0000 @@ -265,7 +265,7 @@ except ImportError: pass - visitor.tree.write(file = outStream) + visitor.tree.write(outStream) except SyntaxError, ex: lineno = hasattr(ex, 'lineno') and ex.lineno or 0 offset = hasattr(ex, 'offset') and ex.offset or 0