Code Monkey home page Code Monkey logo

sharpdevelop's People

Contributors

barnacleboy avatar chhornung avatar christophwille avatar cipriankhlud avatar davidalpert avatar dgrunwald avatar dsrbecky avatar erik-kallen avatar eusebiu avatar gumme avatar hotgen avatar itaibh avatar jogibear9988 avatar kumardevvrat avatar lightyang0 avatar linquize avatar markuspalme avatar mathiassimmack-xx avatar mkonicek avatar mkrueger avatar mrward avatar olegbevz avatar peterforstmeier avatar riviti avatar rpinski avatar russ256 avatar siegfriedpammer avatar sokar92 avatar tomaslinhart avatar zippy1981 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sharpdevelop's Issues

Incorrect indentation select/switch statement

SD-1284, originally created on 1/23/2007 23:49:59 by Matt Ward

Similar behaviour with a VB.NET Select Case statement and a C# switch
statement.

Pressing return after the first switch line indents the next line by two
tabs instead of the expected one. I would expect it to only indent by
one extra tab. If you ignore this and type the case line and then enter
the colon character SharpDevelop fixes the indent.


Comment from Siegfried Pammer on 9/15/2008 07:22:33:
Fixed VB .NET Select Case

Toggling multiple block comments

SD-1273, originally created on 1/16/2007 22:59:33 by Matt Ward

If you have some xml like:

       

Select both commented blocks either partially or completely. Then click
the Toggle comment toolbar button. The comments are changed incorrectly.
It should probably uncomment all selected comments.

Tools / Options / General - Print

SD-942, originally created on 7/17/2006 12:21:59 by Christoph Wille

Printing should be enhanced. The following features would be helpful:

  • Print line numbers yes / no (currently by default no)
  • Print monochrome yes / no (some laser printers do raster colors
    making printouts less readable)
  • Idea for discussion: Strip comments yes / no (to print only code for
    eg code reviews)

Please add addtl feature requests in the comments.

Cancelling a web reference refresh

SD-1314, originally created on 2/13/2007 16:47:06 by Matt Ward

Refreshing a web reference runs the web service discovery on the UI
thread which can stop SharpDevelop from responding. VS has the same
behaviour. Options:

  1. Just put the web reference discovery on a separate thread that runs
    in the background and refresh the web reference when possible.
  2. A combination of 1) and have the same behaviour as with other long
    running processes where a dialog is displayed which allows you to cancel
    the refresh.
  3. A combination of 1) and indicate in the project browser that the
    refresh is still taking place. Another menu option to cancel the
    refresh.

Option 2) fits in with the current behaviour and it allows you to cancel
the refresh. Option 3) would be good to do, but option 2) is easier to
implement. Option 3) would need to handle the user deleting the web
reference before the refresh completed.

Clipboard ring should allow cicleing of text

SD-876, originally created on 6/18/2006 01:13:01 by Anibal SL.

The #Develop Clipboard Ring lacks the abillity of using Ctrl + Shift +V
on text editor to cicle its content like VS. I think that's why they
call it Clipboard "Ring".


Comment from Daniel Grunwald on 11/10/2013 17:55:48:
An alternative would be to show a dialog/completion list with the
contents of the clipboard ring.

Copying a folder in projects pad throws exception when path is too long.

SD-958, originally created on 7/24/2006 03:06:58 by Anibal SL.

To reproduce it:
Note: I have reproduced this error having the solution used in this
example in a folder named "C:\Documents and
Settings\Anibal\Escritorio\Serralongue\branches\2.0\SharpDevelop\src".

1.- Open Sharpdevelop Solution with Serralongue
2.- In the Projects pad try to copy the folder node "Main /
ICSarpCode.SharpDevelop / Src / Project" draging it with the Ctrl key
pressed inside the folder node "Main / ICSarpCode.SharpDevelop / Src /
Internal".

The following Exception should be thrown:

.NET Version        : 2.0.50727.42
OS Version           : Microsoft Windows NT 5.1.2600 Service Pack 2
Current culture      : Spanish (Uruguay) (es-UY)
Current UI language  : en
Working Set Memory   : 21748kb
SharpDevelop Version : 2.1.0.1615

Exception thrown:
System.IO.PathTooLongException: The specified path, file name, or both
are too long. The fully qualified file name must be less than 260
characters, and the directory name must be less than 248 characters.
   at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
   at System.IO.Path.GetFullPathInternal(String path)
   at System.IO.File.InternalCopy(String sourceFileName, String
destFileName, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at ICSharpCode.Core.FileUtility.DeepCopy(String sourceDirectory,
String destinationDirectory, Boolean overwrite)
   at
ICSharpCode.SharpDevelop.Project.Commands.AddExistingItemsToProject.CopyDirectory(String
directoryName, DirectoryNode node, Boolean includeInProject)
   at
ICSharpCode.SharpDevelop.Project.DirectoryNode.CopyDirectoryHere(String
directoryName, Boolean performMove)
   at
ICSharpCode.SharpDevelop.Project.DirectoryNode.DoDragDrop(IDataObject
dataObject, DragDropEffects effect)

Designing database components with Visual Studio Express installed

SD-839, originally created on 6/4/2006 16:29:04 by Matt Ward

Catch-all bug for various issues the forms designer has when trying to
configure database component properties with Visual Studio Express
installed. The underlying problem is that the Visual Studio specific
designer classes are picked up by the designer framework and used from
inside SharpDevelop.

One example:

  1. Drop a OleDbDataAdapter onto a form.
  2. Open up the Properties window.
  3. Select the DeleteCommand and choose "New" from the dropdown list.

Exception occurred: System.NullReferenceException: Object reference not
set to an instance of an object.
   at
Microsoft.VSDesigner.Data.Design.DBCommandEditor.EditValue(ITypeDescriptorContext
context, IServiceProvider provider, Object value)
   at
System.Windows.Forms.PropertyGridInternal.GridEntry.EditPropertyValue(PropertyGridView
iva)

Debugging a test method should add a breakpoint to the test method if one does not exist

SD-1271, originally created on 1/15/2007 14:12:53 by Matt Ward

Usability enhancement.

User selects test method in test tree, right clicks and selects Run with
Debugger. SharpDevelop checks the corresponding test method and adds a
breakpoint on its first line if no breakpoints exist in that method.


Comment from Daniel Grunwald on 8/15/2008 10:36:34:
  Often I set a breakpoint into the tested method and then start an
individual test - in this case, SharpDevelop shouldn't set a breakpoint
in the test method.

Rename refactoring does not change the interface declaration

SD-1168, originally created on 10/19/2006 14:51:23 by Matt Ward

  1. With a new C# project create an interface and a class:

public interface MyInterface
{
    int Foo();
}

public class MyClass : MyInterface
{
    public int Foo()
    {
    }
}

  1. Select the MyClass Foo method, right click and select Rename. Enter
    Bar for the new name.

Expected result:

MyClass Foo method is renamed to Bar. MyInterface Foo method is renamed
to Bar.

Actual result:

Just MyClass Foo method is renamed.

VS Express behaviour:

Pops up a message box asking:

The member 'MyClass.Foo()' either overrides/implements other members or
is overridden/implemented by members in other types. The operation will
result in cascading updates. Do you want to continue?

Not sure if the message box is a good or bad thing.


Comment from Siegfried Pammer on 7/29/2010 16:10:07:
Same goes for the other direction. Renaming an interface member does not
change implementations. Same goes for virtual/abstract members.

see
http://community.sharpdevelop.net/forums/t/11604.aspx


Comment from Martin Konicek on 7/31/2010 19:08:45:
Not only Rename, but neither Find References work. If Find References is
fixed, Rename will work as well.

Note that if the base is abstract class (not an interface), one
direction works - from base to derived.

See RefactoringService.FindReferences().

Possible hint from Daniel to implement this is look at
ResolveResult.IsReferenceTo().


Comment from Daniel Grunwald on 11/10/2013 18:14:48:
This is why NR5 has the SymbolCollector to find related members.
I'm leaving this issue open as I'm not sure SD5 is using it correctly,
and we might want some UI for it.

Search and replace dialog enhancements

SD-919, originally created on 6/27/2006 11:41:44 by Matt Ward

Possible enhancements for the search and replace dialog taken from
forum:

http://community.sharpdevelop.net/forums/thread/9022.aspx

Note that in SharpDevelop 2.1 pressing enter will cause the default
button to be clicked (either Find or Find Next) and focus will return to
the dialog. This was not added to SharpDevelop 2.0.

Rename the "Search and Replace" dialog to "Find and Replace" since the
options on the dialog are all called Find even the toolbar button.
Alternatively change the options in the dialog so they are called Search
and leave the dialog name unchanged.

No keyboard accelerators for dialog buttons. 'Fi&nd what', 'Re&place
with:', '&Find', '&Search in:'

Can we add keyboard accelerators for the toolbar buttons?

Change "Search in:" to "Look in:".

Use the standard replace keyboard shortcut Ctrl+H instead of Ctrl+R.

Disable the various buttons if no find text has been entered.

After clicking the Replace all button the focus should stay with the
Search and Replace dialog. Currently the text editor grabs the focus.
Currently when clicking Find All the focus is kept with the Search and
Replace dialog.

Search part has a button called Find, but the Replace part has a button
called Find Next. They should be consistent.


Comment from Matt Ward on 7/12/2006 21:59:17:
In revision 2.1.1574 - Ctrl+F and Ctrl+R now switch the search and
replace dialog between the search/replace mode when the dialog has
focus. Before this only worked if the dialog was open but did not have
the focus. This removes the need for special shortcuts for the toolbar
buttons. The dialog's buttons are now disabled when no find pattern is
entered - fixes the problem where pretty much every character in the
text file would be matched if a search was done with an empty string for
a find pattern.


Comment from Daniel Grunwald on 11/10/2013 17:57:39:
We also should replace the XmlForms. Maybe a complete rewrite of the GUI
might be in order?

Support for svn:needs-lock

SD-1428, originally created on 6/21/2008 23:23:50 by Daniel Grunwald

SharpDevelop should get an event that allows AddIns to remove the
readonly attribute from readonly files when the user wants to change
them.
The Subversion AddIn should react to this event, check if the file is
read-only due to svn:needs-lock; and display the TortoiseSVN dialog for
acquiring the lock.

Primary Interop Assemblies not added correctly

SD-823, originally created on 5/29/2006 17:43:57 by Matt Ward

With Visual Studio, if you add a COM reference to "Microsoft Word 11.0
Object Library" you actually add a reference to the associated primary
interop:

   
      {00020905-0000-0000-C000-000000000046}
      8
      3
      0
      primary
      False
   

No interop is generated by MSBuild when compiling the project since the
Primary Interop Assembly is in the GAC.

SharpDevelop just treats the COM component like a normal COM component.

The code completion engine should also take this into account and
determine type information from the primary interop assembly in the GAC
rather than trying to load a non-existent interop assembly.


Comment from Daniel Grunwald on 8/19/2011 12:07:25:
We can find primary interop assemblies by looking at the
"PrimaryInteropAssemblyName" registry value that is stored for the type
lib (e.g. in
HKEY_CLASSES_ROOT\TypeLib{00020905-0000-0000-C000-000000000046}\8.4)


Comment from Daniel Grunwald on 11/10/2013 17:49:39:
https://github.com/dgrunwald/SharpDevelop/tree/sd-823

Customizable shortcuts

SD-1463, originally created on 10/4/2008 15:10:24 by Daniel Grunwald

Ideas:

  • Allow sequence shortcuts

  • Allow triggering disabled/invisible items in the main menu (then we
    don't have to update the main menu
                                              on Application.Idle, only
    check if an item is really enabled if it is clicked)

  • Allow the user to redefine shortcuts

  • What about non-main-menu shortcuts? (these don't have to be unique!)
       - context menu shortcuts
       - text editor actions
       - other stuff

  • Print shortcut table

    Implementation:
    For menus: maintain mapping AddInTree item <-> KeyGesture ? Or
    command class <-> KeyGesture?
    What about text editor actions/other stuff?


Comment from Daniel Grunwald on 3/8/2010 16:46:27:
Make sure that F5 can be assigned to both "Run" and "Continue". Maybe
merge Run and Continue into a single command if this makes the
implementation simpler.

ToolBox component assumes assembly extension is always .dll

SD-1277, originally created on 1/18/2007 18:43:42 by Matt Ward

If you have a controls which are in an assembly with an extension of
.exe and try to add this to the toolbox you see a message that the
assembly could not be loaded.

The ToolComponent class assumes that the file extension is always .dll:

        string AssemblyFileNameWithoutPath {
            get {
                int idx = assemblyName.IndexOf(',');
               
                return assemblyName.Substring(0, idx) + ".dll";
            }
        }

Configurable location for user defined text templates in Tools window

SD-1330, originally created on 2/26/2007 01:11:53 by Matt Ward

In the data\options\TextLib folder there are various text templates
such as licenses that the user might want to customise. A possible new
feature is to have a user configurable location (Tools | Options) for
these items which is read on startup. Matching items could replace the
standard items that ship with SharpDevelop.

Moving files in "Projects" pane results in unexpected selection

SD-801, originally created on 4/30/2006 20:58:42 by Daniel Grunwald

http://community.sharpdevelop.net/forums/thread/7094.aspx

  1. Create a solution with 2 projects. Call the first one ProjectA and
    the second one ProjectB
  2. Add two files to each project.
  3. In ProjectB, create a folder named Folder.
  4. Drag a file from the root of ProjectB into Folder.
  5. After the move, ProjectA will be selected.

I would expect for the moved item to be selected after the move. Note,
that this may require expanding Folder if it is not already expanded.

SharpDevelop freezes when pasting text from debuggee

SD-1466, originally created on 10/4/2008 17:59:59 by Daniel Grunwald

  1. Create a new Windows Forms application

    1. Put a button on the form
    2. In the button's Click event, put:
      void Button1Click(object sender, EventArgs e)
      {
         Clipboard.SetDataObject("a string");
      }
    3. Run the application in the debugger
    4. Click the button.
      Expected result: same as without debugger: string gets put into
      clipboard
      Actual result: Both SharpDevelop and debuggee freeze.

    Last log entries:
    2008-10-04 17:57:59,603 [1] DEBUG-
    ChooseLayoutCommand.LayoutChanged(object,EventArgs)
    2008-10-04 17:57:59,603 [1] DEBUG- Debugger: ICorDebug initialized,
    debugee version v2.0.50727
    2008-10-04 17:57:59,603 [1] DEBUG- Debugger: Executing
    C:\temp\SharpDevelop Projects\sah2yu\bin\Debug\sah2yu.exe
    2008-10-04 17:57:59,697 [1] DEBUG- Debugger: Callback: CreateProcess
    2008-10-04 17:57:59,759 [1] DEBUG- Debugger: Callback: CreateAppDomain
    2008-10-04 17:57:59,775 [1] DEBUG- Debugger: Callback: LoadAssembly
    2008-10-04 17:57:59,775 [1] DEBUG- Debugger: Process has queued
    callbacks
    2008-10-04 17:57:59,775 [1] DEBUG- Debugger: Callback: LoadModule
    C:\Windows\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll
    2008-10-04 17:57:59,790 [1] DEBUG- Debugger: Process has queued
    callbacks
    2008-10-04 17:57:59,822 [1] DEBUG- Debugger: Callback: CreateThread
    2196
    2008-10-04 17:57:59,900 [1] DEBUG- Debugger: Callback: LoadAssembly
    2008-10-04 17:57:59,915 [1] DEBUG- Debugger: Callback: LoadModule
    C:\temp\SharpDevelop Projects\sah2yu\bin\Debug\sah2yu.exe
    2008-10-04 17:57:59,915 [1] DEBUG- Debugger: Callback: NameChange:
    pAppDomain
    2008-10-04 17:57:59,931 [1] DEBUG- Debugger: Callback: LoadAssembly
    2008-10-04 17:57:59,947 [1] DEBUG- Debugger: Callback: LoadModule
    C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll
    2008-10-04 17:57:59,947 [1] DEBUG- Debugger: Callback: LoadAssembly
    2008-10-04 17:57:59,947 [1] DEBUG- Debugger: Callback: LoadModule
    C:\Windows\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll
    2008-10-04 17:57:59,947 [1] DEBUG- Debugger: Callback: LoadAssembly
    2008-10-04 17:57:59,947 [1] DEBUG- Debugger: Callback: LoadModule
    C:\Windows\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll
    2008-10-04 17:58:00,868 [1] DEBUG- Debugger: Callback: CreateThread
    1060
    2008-10-04 17:58:00,884 [1] DEBUG- Debugger: Callback: Exception
    2008-10-04 17:58:00,884 [1] DEBUG- Debugger: Process has queued
    callbacks
    2008-10-04 17:58:00,915 [1] DEBUG- Debugger: Callback: Exception2
    (type=DEBUG_EXCEPTION_FIRST_CHANCE)
    Call time out! (continuing)
       at Debugger.Interop.MTA2STA.Call(MethodInvoker callDelegate, Boolean
    hasReturnValue) in
    d:\SD\3.0\SharpDevelop\src\AddIns\Misc\Debugger\Debugger.Core\Project\Src\Internal\MTA2STA.cs:line
    162
       at Debugger.Interop.MTA2STA.Call(MethodInvoker callDelegate) in
    d:\SD\3.0\SharpDevelop\src\AddIns\Misc\Debugger\Debugger.Core\Project\Src\Internal\MTA2STA.cs:line
    141
       at Debugger.ManagedCallbackProxy.Call(MethodInvoker callback) in
    d:\SD\3.0\SharpDevelop\src\AddIns\Misc\Debugger\Debugger.Core\Project\Src\Internal\ManagedCallbackProxy.cs:line
    46
       at Debugger.ManagedCallbackProxy.ExceptionUnwind(IntPtr pAppDomain,
    IntPtr pThread, CorDebugExceptionUnwindCallbackType dwEventType, UInt32
    dwFlags) in
    d:\SD\3.0\SharpDevelop\src\AddIns\Misc\Debugger\Debugger.Core\Project\Src\Internal\ManagedCallbackProxy.cs:line
    377


Comment from Daniel Grunwald on 10/4/2008 18:49:23:
This happens only when the debugging SharpDevelop instance accesses the
clipboard (e.g. enabling the "Paste" icon when a text editor is open).
Looks like a deadlock between clipboard and something in the debugger.


Comment from Daniel Grunwald on 10/19/2008 02:17:32:
Fixed in revision 3605 by running Clipboard.ContainsText on a separate
thread.
But the problem remains when actually pasting text. Also, there are
similar problems with drag'n'drop.

Refresh web reference errors shown using MessageService.ShowError

SD-795, originally created on 4/28/2006 17:15:36 by Matt Ward

If there is an WebException thrown when refreshing a web reference the
error is shown in the unhandled exception dialog.  The code uses
MessageService.ShowError which informs the user that the error was
unhandled, when in this case it actually is being handled.

Using a MessageService.ShowMessage call is not a very good alternative
since in this case since web reference error messages tend to contain
html which creates a huge message box. Visual Studio truncates this
message, but the error is still unreadable as it contains html. These
errors should be shown in a custom error dialog made just for web
reference errors. It would show a user friendly description, plus the
error text hidden away in some expandable region or even try to display
the html in a web browser control.

Adding COM reference should add dependencies automatically

SD-822, originally created on 5/29/2006 17:40:38 by Matt Ward

With Visual Studio, adding a reference to "Microsoft Word 11.0 Object
Library" automatically adds references to the dependent COM components:

Microsoft Visual Basic for Applications Extensibility 5.3
Microsoft Office 11.0 Object Library

SharpDevelop should do the same.

Test code converter with ASP.NET projects

SD-1451, originally created on 9/3/2008 18:32:28 by Daniel Grunwald

Test the VB <-> C# code converter with ASP.NET projects, and try
opening the resulting solution with both projects in Visual Studio.
There might be problems related to the ProjectTypeGuids property, check
if we need to apply this patch:
http://community.sharpdevelop.net/forums/t/8169.aspx

Patch by Dimitar Dobrev
 
--- C:/Users/ddobrev/Desktop/LanguageConverter.cs    Thu Aug 07
17:12:04 2008
+++ C:/Users/ddobrev/Desktop/LanguageConverter (2).cs    Mon Aug 11
19:50:26 2008
@@ -90,6 +90,8 @@
                     }
                 }
             }
+            string projectTypeGuids =
tp.MSBuildProject.GetEvaluatedProperty("ProjectTypeGuids");
+            tp.SetProperty("ProjectTypeGuids",
projectTypeGuids.Replace(sp.TypeGuid, tp.TypeGuid), false);
         }
         
         ///

Save solution or file as template

SD-1264, originally created on 1/10/2007 14:05:19 by Matt Ward

Possible new feature, suggested in the forum, of being able to generate
a project template from a currently open solution. Also create a file
template from the selected or open file.


Comment from Daniel Grunwald on 11/10/2013 18:27:11:
Before attempting something like this, we should first discuss a new
file format for project templates. (e.g. using NuGet/T4 instead of our
.xpt/.xft)

Configurable ordering when removing unused import statements

SD-1194, originally created on 11/4/2006 16:23:36 by Matt Ward

I think the ordering after doing Refactor | Remove unused import
statements should be configurable allowing the user to specify just
normal alphabetic sorting or the current default implementation where
standard System namespaces are put at the top with a line break after
them.


Comment from Daniel Grunwald on 11/10/2013 18:15:50:
Does MonoDevelop have something like this?
I think this needs policy support first.

Custom components not removed from Tools when opening another project

SD-1421, originally created on 6/1/2008 17:41:33 by Matt Ward

Steps to reproduce:

  1. Open a project that has a reference to SharpDevelop's text editor.
  2. Open a form in that project.
  3. See that the text editor control is in the custom components tab in
    the Tools window.
  4. Close the project.
  5. Open another project that does not reference the text editor
    assembly.
  6. Open up a form.
  7. Open the custom components tab in the Tools window.

Expected results:

Text editor control is not shown.

Actual results:

Text editor control is shown. Have to restart SharpDevelop to fix this.

Refactoring and XML Comments

SD-1409, originally created on 5/10/2008 20:07:05 by Daniel Grunwald

See http://community.sharpdevelop.net/forums/p/6660/19017.aspx

When renaming a parameter in a method, using #D's built in 'rename'
(Refactoring) facility, any references to that parameter in the method's
code are also updating, but any XML Comments referring to the parameter
are not
. These would normally be tags:

/// Description of what this param
is. 

I suppose this could be a missing feature rather than a bug - but when
you get used to the way refactoring works, you do expect it to update
all code referencing the item you have renamed.

Renaming a linked file should update the link in other projects

SD-1285, originally created on 1/24/2007 00:13:37 by Matt Ward

If you have multiple projects in a solution linking to the same file and
then you rename that file in the Project Browser the other links are not
updated.

Just tried this in VS Express and there is no Rename option for linked
files.

Indentation in case statement

SD-1279, originally created on 1/21/2007 21:58:16 by Matt Ward

See http://community.sharpdevelop.net/forums/thread/14820.aspx

The case statement indentation follows SharpDevelop coding guidelines,
however it should at least honour the indentation the user has changed
it to.


Comment from Matt Ward on 1/21/2007 21:59:50:

Looking at the IndentationReformatter class, to stop the indent remove
lastRealChar != ':' check from:

            if (doc.ReadOnly) {
                // We can't change the current line, but we should
accept the existing
                // indentation if possible (=if the current statement
is not a multiline
                // statement).
                if (!oldBlock.Continuation && !oldBlock.OneLineBlock
&&
                    oldBlock.StartLine == block.StartLine &&
                    block.StartLine < doc.LineNumber && lastRealChar
!= ':')
                {

Currently there are no indentation configuration options in
SharpDevelop (code generation options are not used for this). So a short
term solution would be to get the indentation to honour the level set by
the user. A longer term solution would be to allow the user to configure
various indentation/formatting settings.

Text resizes when tree view loses focus

SD-1438, originally created on 8/2/2008 17:22:10 by Matt Ward

Steps to reproduce:

  1. Open SharpDevelop's solution.
  2. Locate a file with a long name (25+) in the projects browser.
  3. Select the file so it is highlighted in the projects browser.
  4. Select another window in SharpDevelop (e.g. text editor).
    Text gets bigger as the highlighting is changed to grey.
  5. Select the file again in the projects browser.
    Text returns to original size. Still see the bigger text behind.

Does not affect Corsavy.

Assembly Info editor

SD-1009, originally created on 8/14/2006 19:48:50 by Matt Ward

A project option where you can edit the assembly info without having to
edit the file. Visual Studio has a browse button which pops up an
assembly info dialog. Alternatively it could be another tab in the
project options, which I think is a bit better than a pop up dialog.

Re-running only failed tests

SD-1262, originally created on 1/8/2007 17:10:46 by Matt Ward

Possible enhancement that is supported in IntelliJ. Being able to re-run
only the failed tests. Either a toolbar button or menu option.

Create folders defined in project template

SD-1306, originally created on 2/5/2007 13:23:33 by Matt Ward

If you add the following to a project template:

       
           
        

Then the new project has Folder items, but the actual folders are not
created. The Project Browser shows warnings. Ideally these folders
should be created when the project is created.

Add context menu to class browser

SD-1339, originally created on 3/10/2007 13:18:40 by Daniel Grunwald

Some commands from the project browser should also be supported in the
class browser:
On projects: Build, Add Class, Properties
On the references node: Add Reference
On references: Refresh, Remove, Properties
On Namespaces: Add Class

Files opened when a solution is opened

SD-1126, originally created on 9/23/2006 15:34:07 by Matt Ward

  1. Open up a project in SharpDevelop.
  2. Open up a file into SharpDevelop (Let's call this foo.txt). The file
    is not part of the solution.
  3. Close the solution (File | Close | Solution).
  4. Reopen the solution.

Should the file foo.txt be opened when the solution is re-opened?

SharpDevelop2 does not open this file. SharpDevelop 1.1 and VS Express
both open this file.

Assuming that SharpDevelop2's behaviour is OK then should foo.txt be
closed when the solution is closed? In VS Express and SharpDevelop 1.1
foo.txt is closed


Comment from Daniel Grunwald on 11/10/2013 18:12:24:
This is currently because we store the opened files per project.
(which is nice when switching from SD.sln to SD.Test.sln)

Support for unescaped project item includes in templates

SD-1305, originally created on 2/5/2007 12:46:49 by Matt Ward

I was trying to create a WiX project template that has a reference to
the standard WiX UI library. This is done in the .wixproj via:

 
   
 

Note that here I want to use the SharpDevelopBinPath instead of a full
path so the project will build wherever it is located. Unfortunately
there's no support for unescaped ProjectItems in the template:

       
           
        

Here I have added an escapeValue property to the ProjectItems. Not sure
if we need to allow it on individual items. By default the $( ) bit is
encoded so the project no longer builds after the project is created
from the template.

Convert VB conditional compilation directives to C#

SD-1454, originally created on 9/3/2008 20:50:29 by Daniel Grunwald

http://community.sharpdevelop.net/forums/t/8289.aspx

 #If in VB get converted to #if. #Else in VB remains #Else after
the conversion. It needs to be #else

 

Also:

 #If Testing = True

becomes:

#if Testing = True

after the conversion. The "=" should be converted to "==".

The VB lexer must use PreprocessingDirective.Expression instead of
PreprocessingDirective.Arg for conditions.
Also #ElseIf and #Else If must be converted to #elif.

Components from new references are not available until restart

SD-800, originally created on 4/30/2006 20:55:37 by Daniel Grunwald

http://community.sharpdevelop.net/forums/thread/7124.aspx

If you have a solution open and you add a reference ( Project/Add
Reference), the Custom components for the reference is not available
until you close the solution and open it again. (In the Tools window for
drag-drop onto window)

If you remove the reference from the solution, the Custom Components for
the reverence is not removed untill you close SD and open SD again.


Comment from Matt Ward on 1/16/2007 20:47:53:
The bug report is not quite correct - a restart is not required you just
need to build the project.

Lots of problems in the custom components area:

  1. Closing a solution and then re-opening it.

The custom components tab no longer contains any classes from the
project itself. The project content for the active project is not
returned from ParserService.AllProjectContentsWithReferences. If the
project is compiled then the custom components is corrected. I assume
the parser service has not yet parsed the project content for the
project after it has re-opened it.

  1. Removing a reference.

The custom components still contains classes from the removed reference
even if we refresh the custom components tab. The ProjectContents
returned from ParserService.AllProjectContentsWithReferences still
contains a project content for the reference that was removed.

  1. Adding a new or existing user control from a file.

This is not added to the custom components tab until we recompile.
Hooking the ProjectService.ProjectItemAdded does not work since the
parser has not yet parsed the file.

  1. Removing a user control.

This is not removed from the custom components tab until we recompile.

  1. Adding a project to the solution

Need to add new components in this new project plus any referenced
components. Hooking the ProjectService.ProjectAdded event does not work
since the parser has not yet parsed the project content.

  1. CustomComponentsSideTab not disposed.

If the ToolboxProvider.ReloadSideBars is called a new
CustomComponentsSideTab is created but the old one is not disposed. If
you put a breakpoint in the RescanProjectAssemblies method you get hits
for every CustomComponentsSideTab that has been created.


Dynamic updates that could cause the Custom Components tab to change:

A) Project added/removed
B) Reference added/removed
C) Control added/removed

There is a problem with C) since when the ProjectService.ItemAdded event
is fired the parser has not yet parsed the class.

Lazy updating. Only populate the custom components tab when it is
activated? SharpDevelop 3? At the moment every time the project is
compiled the custom components tab is updated.


For now I am going to fix 6) and have the custom components tab update
itself when a new reference is added.


Comment from Matt Ward on 1/16/2007 20:54:56:
Committed a partial fix in 2.1.0.2299. Custom components tab is disposed
on reload and new references added to the project are dynamically added
to the custom components tab.

Creating a folder with the Project Browser when that folder already exists

SD-1317, originally created on 2/14/2007 15:05:35 by Matt Ward

When the user tries to create a new folder with the same name as one
that already exists they are shown an error message telling them that
the folder exists and contains files. With VS Express you get more
information:

"A file or folder with the name 'foobar' already exists on disk at this
location. Please choose another name.

If this file or folder does not appear in the Solution Explorer, then it
is not currently part of your project. To view files which exist on
disk, but not in the project, select Show All Files from the Project
menu."

There have been a few reports on the forum where users have not
understood how to add existing folders to the project.

Options:

A) SharpDevelop should show extra information just to point the user in
the right direction as VS does.
B) The message prompt should tell the user that the folder already
exists and ask them if they want to include it and the files it contains
in the project.
C) Automatically add the folder to the project even if it exists on disk
with no error message.
D) Automatically add the folder and any existing files to the project.

Options A), B) and C) are probably acceptable. D) is probably unexpected
behaviour. I also think C) is OK behaviour since if the user then
decides to create a file that already exists they are shown an error
message so they cannot overwrite any existing files.

Source code file reference cannot be extracted from non-English stacktrace

SD-1274, originally created on 1/17/2007 19:06:02 by Matt Ward

The OutputTextLineParser class, method GetNUnitOutputFileLineReference,
only supports English stack traces. The regex used has english words
"in" and "line".

Using Reflector we see that the .NET Framework stack trace class uses:

      string text1 = "at";
      string text2 = "in {0}:line {1}";
      if (traceFormat != StackTrace.TraceFormat.NoResourceLookup)
      {
            text1 = Environment.GetResourceString("Word_At");
            text2 =
Environment.GetResourceString("StackTrace_InFileLineNumber");
      }

Environment.GetResourceString is an internal method. So either we use
reflection, or add some new resource strings, or try and relax the regex
and remove the english words.

Project browser does not show files with duplicate backslash

SD-1337, originally created on 3/9/2007 16:58:23 by Daniel Grunwald

MSBuild/Windows ignores duplicate backslashes; so these definitions work
fine for the compiler and in Visual Studio.
But SharpDevelop's project browser does not show these files:

 
  
  
  

see http://community.sharpdevelop.net/forums/thread/14900.aspx

When fixing this issue, ensure that the fix doesn't break projects
stored on network locations (\server\share...)

Move files between projects by dragging

SD-794, originally created on 4/27/2006 20:12:49 by Matt Ward

Currently SharpDevelop only allows you to drag and copy a file between
projects. If the user holds the shift key down the file should be moved.
The default should be to copy as it currently is. This behaviour would
then match Visual Studio Express.

Configurable location for user defined project and file templates

SD-1327, originally created on 2/25/2007 19:08:30 by Matt Ward

Visual Studio allows the user to configure the location of folders that
have user defined project and file templates. SharpDevelop could have
similar options. These folders would be checked alongside the standard
folders.

By default VS uses:

C:\Documents and Settings\web\My Documents\Visual Studio
2005\Templates\ProjectTemplates
C:\Documents and Settings\web\My Documents\Visual Studio
2005\Templates\ItemTemplates

Show unit testing metrics

SD-1035, originally created on 8/30/2006 18:39:52 by Matt Ward

At the moment we see metrics only shown if the tests are run with the
debugger or with code coverage. This info is shown in the output
window:

Tests run: 43, Failures: 2, Not run: 0, Time: 0.282 seconds

Now Brian Bailey made a feature request on the forum to add this
information to the Unit testing tree view:
http://community.sharpdevelop.net/forums/thread/11055.aspx

The NUnit GUI puts a summary in the status bar:

Test Cases: 43   Tests Run:   Failures: 10   Time: 10.43

Options:

  1. Put the single test summary string into the output window when
    running the tests in the Unit Testing window. This would make it
    consistent with the other ways to run the unit tests.
  2. Put this information the Unit Testing window.
       a) All info on one line as a string at the bottom of the Unit Testing
    window.
       b) One item per line, plain text.
       c) Icons, one per line, with text (e.g. Red circle - failed test
    count next to it; Clock - time next to it).

For option 2) the information should not mean the user needs to keep the
window wide so just putting the information on one line is probably not
good enough. So I think option 2)a) is not good enough. Personally I
have the unit test window on the right hand side since the tree view
does not take up much width. Making it wider just for this seems a bit
wasteful unless we completely revamp it and do something similar to
MonoDevelop:

http://www.monodevelop.com/Image:Nunitmain.png

Maybe we could have a progress bar too?

Anyway, up for discussion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.