Exemplo n.º 1
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////
        // PUBLIC PROCEDURES
        /////////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Returns information about the action to take when incrementally updating automatic outlining for a particular token.
        /// </summary>
        /// <param name="token">The <see cref="IToken"/> to examine.</param>
        /// <param name="definition">
        /// If the node action indicated is a start or end, an <see cref="IOutliningNodeDefinition"/> describing the related
        /// node must be returned.
        /// </param>
        /// <returns>
        /// An <see cref="OutliningNodeAction"/> indicating the action to take for the token.
        /// </returns>
        protected override OutliningNodeAction GetNodeActionForToken(IToken token, out IOutliningNodeDefinition definition)
        {
            switch (token.Key)
            {
            case "MultiLineCommentStartDelimiter":
                definition = multiLineCommentDefinition;
                return(OutliningNodeAction.Start);

            case "MultiLineCommentEndDelimiter":
                definition = multiLineCommentDefinition;
                return(OutliningNodeAction.End);

            case "OpenCurlyBrace":
                definition = curlyBraceDefinition;
                return(OutliningNodeAction.Start);

            case "CloseCurlyBrace":
                definition = curlyBraceDefinition;
                return(OutliningNodeAction.End);

            default:
                definition = null;
                return(OutliningNodeAction.None);
            }
        }
		/////////////////////////////////////////////////////////////////////////////////////////////////////
		// PUBLIC PROCEDURES
		/////////////////////////////////////////////////////////////////////////////////////////////////////

		/// <summary>
		/// Returns information about the action to take when incrementally updating automatic outlining for a particular token.
		/// </summary>
		/// <param name="token">The <see cref="IToken"/> to examine.</param>
		/// <param name="definition">
		/// If the node action indicated is a start or end, an <see cref="IOutliningNodeDefinition"/> describing the related
		/// node must be returned.
		/// </param>
		/// <returns>
		/// An <see cref="OutliningNodeAction"/> indicating the action to take for the token.
		/// </returns>
		protected override OutliningNodeAction GetNodeActionForToken(IToken token, out IOutliningNodeDefinition definition) {
			switch (token.Key) {
				case "MultiLineCommentStartDelimiter":
					definition = multiLineCommentDefinition;
					return OutliningNodeAction.Start;
				case "MultiLineCommentEndDelimiter":
					definition = multiLineCommentDefinition;
					return OutliningNodeAction.End;
				case "OpenCurlyBrace":
					definition = curlyBraceDefinition;
					return OutliningNodeAction.Start;
				case "CloseCurlyBrace":
					definition = curlyBraceDefinition;
					return OutliningNodeAction.End;
				default:
					definition = null;
					return OutliningNodeAction.None;
			}
		}