Пример #1
0
        public ISelectedRange GetSelectedRange(IPsiSourceFile sourceFile, DocumentRange documentRange)
        {
            (IT4File t4File, IFile codeBehindFile) = GetFiles(sourceFile, documentRange);

            ITreeNode t4Node = t4File?.FindNodeAt(documentRange);

            if (t4Node == null)
            {
                return(null);
            }

            // if the current selection is inside C# code, use the C# extend selection directly
            if (codeBehindFile != null)
            {
                ISelectEmbracingConstructProvider codeBehindProvider = PsiShared.GetComponent <PsiProjectFileTypeCoordinator>()
                                                                       .GetByPrimaryPsiLanguageType(codeBehindFile.Language)
                                                                       .SelectNotNull(fileType => Shell.Instance.GetComponent <IProjectFileTypeServices>().TryGetService <ISelectEmbracingConstructProvider>(fileType))
                                                                       .FirstOrDefault();

                ISelectedRange codeBehindRange = codeBehindProvider?.GetSelectedRange(sourceFile, documentRange);
                if (codeBehindRange != null)
                {
                    return(new T4CodeBehindWrappedSelection(t4File, codeBehindRange));
                }
            }

            return(new T4NodeSelection(t4File, t4Node));
        }
		public T4CodeBehindWrappedSelection([NotNull] IT4File file, [NotNull] ISelectedRange codeBehindRange) {
			_file = file;
			_codeBehindRange = codeBehindRange;
		}
 public T4CodeBehindWrappedSelection([NotNull] IT4File file, [NotNull] ISelectedRange codeBehindRange)
 {
     _file            = file;
     _codeBehindRange = codeBehindRange;
 }