Example #1
0
        public void DeleteCode <T>() where T : ParsedScopeBlock
        {
            // make a list of existing items for this type
            var existingList = _parsedItems.Where(item => item.GetType() == typeof(T)).Cast <T>().ToList();

            object nameToDelete = new ProCodeDelete {
                Value = string.Join("|", existingList.Select(arg => arg.Name))
            };

            if (string.IsNullOrEmpty(((ProCodeDelete)nameToDelete).Value))
            {
                UserCommunication.Notify("Sorry, there was nothing to do!", MessageImg.MsgInfo, "Delete code", "Nothing to delete!", 5);
                return;
            }

            if (UserCommunication.Input(ref nameToDelete, "Please select which piece of code should be deleted", MessageImg.MsgQuestion, "Delete code", "Select the item to delete") != 0)
            {
                return;
            }

            var delete = (ProCodeDelete)nameToDelete;

            if (string.IsNullOrEmpty(delete.Value))
            {
                return;
            }

            var toDelete = existingList.FirstOrDefault(item => item.Name.Equals(delete.Value));

            if (toDelete != null)
            {
                DeleteCode(toDelete);
            }

            // in the case of a new function, update the prototype if needed
            if (typeof(ParsedImplementation) == typeof(T))
            {
                ParseNow();
                UpdateFunctionPrototypes(true);
            }
        }
Example #2
0
        public static void DeleteCode <T>() where T : ParsedScopeItem
        {
            // make sure to parse the current document before doing anything
            ParserHandler.ParseCurrentDocument(true, true);

            // make a list of existing items for this type
            var existingList = ParserHandler.AblParser.ParsedItemsList.Where(item => item.GetType() == typeof(T)).Cast <T>().ToList();

            object nameToDelete = new ProCodeDelete {
                Value = string.Join("|", existingList.Select(arg => arg.Name))
            };

            if (string.IsNullOrEmpty(((ProCodeDelete)nameToDelete).Value))
            {
                UserCommunication.Notify("Sorry, there was nothing to do!", MessageImg.MsgInfo, "Delete code", "Nothing to delete!", 5);
                return;
            }

            if (UserCommunication.Input(ref nameToDelete, "Please select which piece of code should be deleted", MessageImg.MsgQuestion, "Delete code", "Select the item to delete") != 0)
            {
                return;
            }

            var delete = (ProCodeDelete)nameToDelete;

            if (string.IsNullOrEmpty(delete.Value))
            {
                return;
            }

            var toDelete = existingList.FirstOrDefault(item => item.Name.Equals(delete.Value));

            if (toDelete != null)
            {
                DeleteCode(toDelete);
            }
        }