/// <summary>
 ///		Установка контекста <see cref="BSharpDocumentStorage"/> с указанием исходной директории
 /// </summary>
 /// <param name="storage">Исходное хранилище для установки контекста</param>
 /// <param name="path">Путь к файлам B#</param>
 /// <param name="pattern">Паттерн поиска</param>
 /// <param name="recursive">Применять рекурсивную стратегию поиска файлов B#</param>
 /// <param name="resolve">Признак того, что нужно применить резолюцию</param>
 /// <returns>Настроенный экземпляр <see cref="BSharpDocumentStorage"/></returns>
 public static void SetContext(BSharpDocumentStorage storage, string path, string pattern = "*.bxls", bool recursive = true, bool resolve = true)
 {
     if (resolve)
     {
         path = EnvironmentInfo.ResolvePath(path);
     }
     if (Directory.Exists(path))
     {
         var opts  = recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
         var files = Directory.GetFiles(path, pattern, opts).Select(File.ReadAllText).ToArray();
         storage.SetContext(files);
     }
     else if (File.Exists(path))
     {
         var contents = File.ReadAllText(path);
         storage.SetContext(contents);
     }
     else
     {
         throw new Exception("Cannot resolve target");
     }
 }
		/// <summary>
		///		Установка контекста <see cref="BSharpDocumentStorage"/> с указанием исходной директории
		/// </summary>
		/// <param name="storage">Исходное хранилище для установки контекста</param>
		/// <param name="path">Путь к файлам B#</param>
		/// <param name="pattern">Паттерн поиска</param>
		/// <param name="recursive">Применять рекурсивную стратегию поиска файлов B#</param>
		/// <param name="resolve">Признак того, что нужно применить резолюцию</param>
		/// <returns>Настроенный экземпляр <see cref="BSharpDocumentStorage"/></returns>
		public static void SetContext(BSharpDocumentStorage storage, string path, string pattern = "*.bxls", bool recursive = true, bool resolve = true) {
			if (resolve) path = EnvironmentInfo.ResolvePath(path);
			if (Directory.Exists(path)) {
				var opts = recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
				var files = Directory.GetFiles(path, pattern, opts).Select(File.ReadAllText).ToArray();
				storage.SetContext(files);
			} else if (File.Exists(path)) {
				var contents = File.ReadAllText(path);
				storage.SetContext(contents);
			} else {
				throw new Exception("Cannot resolve target");
			}
		}