Skip to content

Commit f376468

Browse files
authored
Merge pull request #2843 from comintern/next
Indent project's triumphant return. Fix control flag for COM collector, update serializations.
2 parents e07df9d + 003ffe3 commit f376468

File tree

16 files changed

+145
-65
lines changed

16 files changed

+145
-65
lines changed

RetailCoder.VBE/Root/RubberduckModule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ private IMenuItem GetSmartIndenterParentMenu()
500500
{
501501
KernelInstance.Get<IndentCurrentProcedureCommandMenuItem>(),
502502
KernelInstance.Get<IndentCurrentModuleCommandMenuItem>(),
503+
KernelInstance.Get<IndentCurrentProjectCommandMenuItem>(),
503504
KernelInstance.Get<NoIndentAnnotationCommandMenuItem>()
504505
};
505506

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,8 @@
472472
<Compile Include="UI\CodeExplorer\Commands\AddClassModuleCommand.cs" />
473473
<Compile Include="UI\CodeExplorer\Commands\AddStdModuleCommand.cs" />
474474
<Compile Include="UI\CodeExplorer\Commands\AddTestModuleCommand.cs" />
475+
<Compile Include="UI\Command\IndentCurrentProjectCommand.cs" />
476+
<Compile Include="UI\Command\MenuItems\IndentCurrentProjectCommandMenuItem.cs" />
475477
<Compile Include="UI\EnvironmentProvider.cs" />
476478
<Compile Include="UI\ModernFolderBrowser.cs" />
477479
<Compile Include="UI\Refactorings\AssignedByValParameterQuickFixDialogFactory.cs" />
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Runtime.InteropServices;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using NLog;
8+
using Rubberduck.Parsing.VBA;
9+
using Rubberduck.Settings;
10+
using Rubberduck.SmartIndenter;
11+
using Rubberduck.VBEditor.SafeComWrappers;
12+
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
13+
14+
namespace Rubberduck.UI.Command
15+
{
16+
[ComVisible(false)]
17+
public class IndentCurrentProjectCommand : CommandBase
18+
{
19+
private readonly IVBE _vbe;
20+
private readonly IIndenter _indenter;
21+
private readonly RubberduckParserState _state;
22+
23+
public IndentCurrentProjectCommand(IVBE vbe, IIndenter indenter, RubberduckParserState state) : base(LogManager.GetCurrentClassLogger())
24+
{
25+
_vbe = vbe;
26+
_indenter = indenter;
27+
_state = state;
28+
}
29+
30+
protected override bool CanExecuteImpl(object parameter)
31+
{
32+
return !_vbe.ActiveVBProject.IsWrappingNullReference && _vbe.ActiveVBProject.Protection != ProjectProtection.Locked;
33+
}
34+
35+
protected override void ExecuteImpl(object parameter)
36+
{
37+
_indenter.IndentCurrentProject();
38+
_state.OnParseRequested(this);
39+
}
40+
}
41+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using Rubberduck.UI.Command.MenuItems.ParentMenus;
7+
8+
namespace Rubberduck.UI.Command.MenuItems
9+
{
10+
public class IndentCurrentProjectCommandMenuItem : CommandMenuItemBase
11+
{
12+
public IndentCurrentProjectCommandMenuItem(CommandBase command) : base(command) { }
13+
14+
public override string Key { get { return "IndentCurrentProject"; } }
15+
public override int DisplayOrder { get { return (int)SmartIndenterMenuItemDisplayOrder.CurrentProject; } }
16+
}
17+
}

RetailCoder.VBE/UI/Command/MenuItems/ParentMenus/SmartIndenterParentMenu.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public enum SmartIndenterMenuItemDisplayOrder
1919
{
2020
CurrentProcedure,
2121
CurrentModule,
22+
CurrentProject,
2223
NoIndentAnnotation,
2324
}
2425
}

RetailCoder.VBE/UI/RubberduckUI.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

RetailCoder.VBE/UI/RubberduckUI.de.resx

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<root>
33
<!--
44
Microsoft ResX Schema
@@ -59,7 +59,7 @@
5959
: using a System.ComponentModel.TypeConverter
6060
: and then encoded with base64 encoding.
6161
-->
62-
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
62+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
6363
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
6464
<xsd:element name="root" msdata:IsDataSet="true">
6565
<xsd:complexType>
@@ -951,7 +951,7 @@ Wollen Sie trotzdem fortfahren?</value>
951951
<value>Aktuelle Pro&amp;zedur</value>
952952
</data>
953953
<data name="IndentCurrentProject" xml:space="preserve">
954-
<value>Ganzes Projekt</value>
954+
<value>Current Project</value>
955955
</data>
956956
<data name="SmartIndenterMenu" xml:space="preserve">
957957
<value>Ein&amp;rücken</value>
@@ -1856,77 +1856,77 @@ End Sub</value>
18561856
<data name="SettingsCaption_ImportSettings" xml:space="preserve">
18571857
<value>Import</value>
18581858
</data>
1859-
<data name="SmartIndenter_LegacySettingPrompt">
1859+
<data name="SmartIndenter_LegacySettingPrompt" xml:space="preserve">
18601860
<value>Einstellungen für Smart Indenter wurden in der Registry gefunden.
18611861
Möchten sie die Einstellungen in Rubberduck importieren?</value>
18621862
</data>
1863-
<data name="GeneralSettings_CheckVersion">
1863+
<data name="GeneralSettings_CheckVersion" xml:space="preserve">
18641864
<value>Beim Start prüfen, ob eine neuere Version verfügbar ist.</value>
18651865
</data>
1866-
<data name="AssignedByValParamQFixDialog_TitleText">
1866+
<data name="AssignedByValParamQFixDialog_TitleText" xml:space="preserve">
18671867
<value>Variablenname der Lokalen Kopie festlegen</value>
18681868
</data>
1869-
<data name="IndenterSettings_CodeSampleHeader">
1869+
<data name="IndenterSettings_CodeSampleHeader" xml:space="preserve">
18701870
<value>Eingerücktes Codebeispiel</value>
18711871
</data>
1872-
<data name="DialogCaption_LoadWindowSettings">
1872+
<data name="DialogCaption_LoadWindowSettings" xml:space="preserve">
18731873
<value>Fenstereinstellungen laden</value>
18741874
</data>
1875-
<data name="SettingsInstructions_WindowSettings">
1875+
<data name="SettingsInstructions_WindowSettings" xml:space="preserve">
18761876
<value>Die Einstellungen für Fenstersichtbarkeit anpassen.</value>
18771877
</data>
1878-
<data name="AssignedByValParamQFixDialog_InstructionsLabelText">
1878+
<data name="AssignedByValParamQFixDialog_InstructionsLabelText" xml:space="preserve">
18791879
<value>Bitte geben Sie einen Namen für die lokale Kopie von ByVal {0} '{1}'</value>
18801880
</data>
1881-
<data name="IndenterSettings_VerticalSpacing">
1881+
<data name="IndenterSettings_VerticalSpacing" xml:space="preserve">
18821882
<value>Vertikalen Abstand aufrecht erhalten</value>
18831883
</data>
1884-
<data name="IndenterSettings_VerticalSpacingLabel">
1884+
<data name="IndenterSettings_VerticalSpacingLabel" xml:space="preserve">
18851885
<value>Vertikalen Abstand</value>
18861886
</data>
1887-
<data name="DialogCaption_SaveWindowSettings">
1887+
<data name="DialogCaption_SaveWindowSettings" xml:space="preserve">
18881888
<value>Fenstereinstellungen speichern</value>
18891889
</data>
1890-
<data name="DeclarationType_BracketedExpression">
1890+
<data name="DeclarationType_BracketedExpression" xml:space="preserve">
18911891
<value>Laufzeitausdruck</value>
18921892
</data>
1893-
<data name="AssignedByValParamQFixDialog_Caption">
1893+
<data name="AssignedByValParamQFixDialog_Caption" xml:space="preserve">
18941894
<value>ByVal zugewiesener Parameter QuickFix - Lokale Kopie erstellen</value>
18951895
</data>
1896-
<data name="WindowSettings_StartupVisibilityHeader">
1896+
<data name="WindowSettings_StartupVisibilityHeader" xml:space="preserve">
18971897
<value>Fenstersichtbarkeit beim Start</value>
18981898
</data>
1899-
<data name="VersionCheck_NewVersionAvailable">
1899+
<data name="VersionCheck_NewVersionAvailable" xml:space="preserve">
19001900
<value>Rubberduck Version {0} ist jetzt verfügbar! Wollen sie jetzt die Release Notes prüfen?</value>
19011901
</data>
1902-
<data name="SettingsCaption_WindowSettings">
1902+
<data name="SettingsCaption_WindowSettings" xml:space="preserve">
19031903
<value>Fenstereinstellungen</value>
19041904
</data>
1905-
<data name="AssignedByValDialog_NewNameAlreadyUsedFormat">
1905+
<data name="AssignedByValDialog_NewNameAlreadyUsedFormat" xml:space="preserve">
19061906
<value />
19071907
</data>
1908-
<data name="AssignedByValDialog_ReservedKeywordFormat">
1908+
<data name="AssignedByValDialog_ReservedKeywordFormat" xml:space="preserve">
19091909
<value />
19101910
</data>
1911-
<data name="RenameDialog_AmbiguousSelection">
1911+
<data name="RenameDialog_AmbiguousSelection" xml:space="preserve">
19121912
<value />
19131913
</data>
1914-
<data name="ContextMultipleControlsSelection">
1914+
<data name="ContextMultipleControlsSelection" xml:space="preserve">
19151915
<value />
19161916
</data>
1917-
<data name="AssignedByValDialog_InvalidCharacters">
1917+
<data name="AssignedByValDialog_InvalidCharacters" xml:space="preserve">
19181918
<value />
19191919
</data>
1920-
<data name="AssignedByValDialog_IsByValIdentifierFormat">
1920+
<data name="AssignedByValDialog_IsByValIdentifierFormat" xml:space="preserve">
19211921
<value />
19221922
</data>
1923-
<data name="AssignedByValDialog_QuestionableEntryFormat">
1923+
<data name="AssignedByValDialog_QuestionableEntryFormat" xml:space="preserve">
19241924
<value />
19251925
</data>
1926-
<data name="ConfirmRemoveAssignmentWithUnusedDeclaration">
1926+
<data name="ConfirmRemoveAssignmentWithUnusedDeclaration" xml:space="preserve">
19271927
<value />
19281928
</data>
1929-
<data name="AssignedByValDialog_DoesNotStartWithLetter">
1929+
<data name="AssignedByValDialog_DoesNotStartWithLetter" xml:space="preserve">
19301930
<value />
19311931
</data>
1932-
</root>
1932+
</root>

RetailCoder.VBE/UI/RubberduckUI.fr.resx

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<root>
33
<!--
44
Microsoft ResX Schema
@@ -59,7 +59,7 @@
5959
: using a System.ComponentModel.TypeConverter
6060
: and then encoded with base64 encoding.
6161
-->
62-
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
62+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
6363
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
6464
<xsd:element name="root" msdata:IsDataSet="true">
6565
<xsd:complexType>
@@ -898,7 +898,7 @@ Attention: les valeurs personnalisées seront perdues. Le fichier original se
898898
<value>&amp;Déplacer la déclaration</value>
899899
</data>
900900
<data name="IndentCurrentProject" xml:space="preserve">
901-
<value>Projet entier</value>
901+
<value>Current Project</value>
902902
</data>
903903
<data name="MoveCloserToUsage_Caption" xml:space="preserve">
904904
<value>Rubberduck - Rapprocher la déclaration de son utilisation</value>
@@ -1869,70 +1869,70 @@ End Sub</value>
18691869
<data name="VersionCheck_NewVersionAvailable" xml:space="preserve">
18701870
<value>La version {0} de Rubberduck est maintenant disponible! Souhaitez-vous consulter les notes de mise à jour maintenant?</value>
18711871
</data>
1872-
<data name="AssignedByValDialog_NewNameAlreadyUsedFormat">
1872+
<data name="AssignedByValDialog_NewNameAlreadyUsedFormat" xml:space="preserve">
18731873
<value>'{0}' est déjà accessible à cette procédure.</value>
18741874
</data>
1875-
<data name="SmartIndenter_LegacySettingPrompt">
1875+
<data name="SmartIndenter_LegacySettingPrompt" xml:space="preserve">
18761876
<value>Des paramètres utilisés par Smart Indenter existent dans votre registre. Voulez-vous les importer dans Rubberduck?</value>
18771877
</data>
1878-
<data name="AssignedByValParamQFixDialog_TitleText">
1878+
<data name="AssignedByValParamQFixDialog_TitleText" xml:space="preserve">
18791879
<value>Nommer la variable locale</value>
18801880
</data>
1881-
<data name="IndenterSettings_CodeSampleHeader">
1881+
<data name="IndenterSettings_CodeSampleHeader" xml:space="preserve">
18821882
<value>Échantillon de code indenté</value>
18831883
</data>
1884-
<data name="AssignedByValDialog_ReservedKeywordFormat">
1884+
<data name="AssignedByValDialog_ReservedKeywordFormat" xml:space="preserve">
18851885
<value>'{0}' est un mot-clé réservé.</value>
18861886
</data>
1887-
<data name="DialogCaption_LoadWindowSettings">
1887+
<data name="DialogCaption_LoadWindowSettings" xml:space="preserve">
18881888
<value>Charger les paramètres des fenêtres</value>
18891889
</data>
1890-
<data name="RenameDialog_AmbiguousSelection">
1890+
<data name="RenameDialog_AmbiguousSelection" xml:space="preserve">
18911891
<value>Veuillez sélectionner 1 seul contrôle à renommer.</value>
18921892
</data>
1893-
<data name="ContextMultipleControlsSelection">
1893+
<data name="ContextMultipleControlsSelection" xml:space="preserve">
18941894
<value>contrôles multiples</value>
18951895
</data>
1896-
<data name="SettingsInstructions_WindowSettings">
1896+
<data name="SettingsInstructions_WindowSettings" xml:space="preserve">
18971897
<value>Configurer la visibilité des fenêtres</value>
18981898
</data>
1899-
<data name="AssignedByValDialog_InvalidCharacters">
1899+
<data name="AssignedByValDialog_InvalidCharacters" xml:space="preserve">
19001900
<value>Un nom de variable ne peut pas contenir de caractères spéciaux autre que la barre de soulignement ("underscore").</value>
19011901
</data>
1902-
<data name="AssignedByValParamQFixDialog_InstructionsLabelText">
1902+
<data name="AssignedByValParamQFixDialog_InstructionsLabelText" xml:space="preserve">
19031903
<value>Veuillez spécifier le nom à utiliser pour la copie locale du paramètre '{0}'.</value>
19041904
</data>
1905-
<data name="IndenterSettings_VerticalSpacing">
1905+
<data name="IndenterSettings_VerticalSpacing" xml:space="preserve">
19061906
<value>Maintenir l'espacement vertical</value>
19071907
</data>
1908-
<data name="IndenterSettings_VerticalSpacingLabel">
1908+
<data name="IndenterSettings_VerticalSpacingLabel" xml:space="preserve">
19091909
<value>Espacement vertical</value>
19101910
</data>
1911-
<data name="AssignedByValDialog_IsByValIdentifierFormat">
1911+
<data name="AssignedByValDialog_IsByValIdentifierFormat" xml:space="preserve">
19121912
<value>Le nom de la variable doit être différent de celui du paramètre '{0}'.</value>
19131913
</data>
1914-
<data name="AssignedByValDialog_QuestionableEntryFormat">
1914+
<data name="AssignedByValDialog_QuestionableEntryFormat" xml:space="preserve">
19151915
<value />
19161916
</data>
1917-
<data name="DialogCaption_SaveWindowSettings">
1917+
<data name="DialogCaption_SaveWindowSettings" xml:space="preserve">
19181918
<value>Enregistrer les paramètres des fenêtres</value>
19191919
</data>
1920-
<data name="ConfirmRemoveAssignmentWithUnusedDeclaration">
1920+
<data name="ConfirmRemoveAssignmentWithUnusedDeclaration" xml:space="preserve">
19211921
<value>La varaible '{0}' est assignée. Supprimer l'/les assignation(s)?</value>
19221922
</data>
1923-
<data name="DeclarationType_BracketedExpression">
1923+
<data name="DeclarationType_BracketedExpression" xml:space="preserve">
19241924
<value>expression résolue à l'exécution</value>
19251925
</data>
1926-
<data name="AssignedByValParamQFixDialog_Caption">
1926+
<data name="AssignedByValParamQFixDialog_Caption" xml:space="preserve">
19271927
<value>Introduire une variable locale</value>
19281928
</data>
1929-
<data name="WindowSettings_StartupVisibilityHeader">
1929+
<data name="WindowSettings_StartupVisibilityHeader" xml:space="preserve">
19301930
<value>Visibilité au démarrage</value>
19311931
</data>
1932-
<data name="AssignedByValDialog_DoesNotStartWithLetter">
1932+
<data name="AssignedByValDialog_DoesNotStartWithLetter" xml:space="preserve">
19331933
<value>Le nom d'une variable doit débuter par une lettre.</value>
19341934
</data>
1935-
<data name="SettingsCaption_WindowSettings">
1935+
<data name="SettingsCaption_WindowSettings" xml:space="preserve">
19361936
<value>Paramètres des fenêtres</value>
19371937
</data>
1938-
</root>
1938+
</root>

RetailCoder.VBE/UI/RubberduckUI.resx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<root>
33
<!--
44
Microsoft ResX Schema
@@ -59,7 +59,7 @@
5959
: using a System.ComponentModel.TypeConverter
6060
: and then encoded with base64 encoding.
6161
-->
62-
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
62+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
6363
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
6464
<xsd:element name="root" msdata:IsDataSet="true">
6565
<xsd:complexType>
@@ -984,7 +984,7 @@ Are you sure you want to proceed with this rename?</value>
984984
<value>Current &amp;Procedure</value>
985985
</data>
986986
<data name="IndentCurrentProject" xml:space="preserve">
987-
<value>Entire project</value>
987+
<value>Current Project</value>
988988
</data>
989989
<data name="SmartIndenterMenu" xml:space="preserve">
990990
<value>In&amp;dent</value>
@@ -1964,4 +1964,4 @@ Would you like to import them to Rubberduck?</value>
19641964
<data name="ConfirmRemoveAssignmentWithUnusedDeclaration" xml:space="preserve">
19651965
<value>Variable '{0}' is assigned. Remove assignment instruction(s)?</value>
19661966
</data>
1967-
</root>
1967+
</root>

Rubberduck.Parsing/ComReflection/ComCoClass.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public ComCoClass(ITypeLib typeLib, ITypeInfo info, TYPEATTR attrib, int index)
7171
{
7272
Type = DeclarationType.ClassModule;
7373
GetImplementedInterfaces(info, attrib);
74-
IsControl = attrib.wTypeFlags.HasFlag(TYPEFLAGS.TYPEFLAG_FAPPOBJECT);
74+
IsControl = attrib.wTypeFlags.HasFlag(TYPEFLAGS.TYPEFLAG_FCONTROL);
7575
Debug.Assert(attrib.cFuncs == 0);
7676
}
7777

Rubberduck.SmartIndenter/IIndenter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public interface IIndenter
88
{
99
void IndentCurrentProcedure();
1010
void IndentCurrentModule();
11+
void IndentCurrentProject();
1112
void Indent(IVBComponent component);
1213
void Indent(IVBComponent component, Selection selection);
1314
IEnumerable<string> Indent(IEnumerable<string> lines);

0 commit comments

Comments
 (0)