Example #1
0
 protected UnionPartBase([NotNull] IFSharpTypeDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder,
                         bool hasPublicNestedTypes, bool isSingleCaseUnion) : base(declaration, cacheBuilder)
 {
     HasPublicNestedTypes       = hasPublicNestedTypes;
     RepresentationAccessRights = GetRepresentationAccessRights(declaration);
     IsSingleCaseUnion          = isSingleCaseUnion;
 }
Example #2
0
        protected FSharpTypeMembersOwnerTypePart([NotNull] IFSharpTypeDeclaration declaration,
                                                 [NotNull] ICacheBuilder cacheBuilder)
            : base(declaration, ModifiersUtil.GetDecoration(declaration.AccessModifier, declaration.AllAttributes),
                   declaration.TypeParameters, cacheBuilder)
        {
            var extendListShortNames = new FrugalLocalHashSet <string>();

            foreach (var member in declaration.TypeMembersEnumerable)
            {
                var baseTypeIdentifier = (member as ITypeInherit)?.TypeName?.Identifier;
                if (baseTypeIdentifier != null)
                {
                    extendListShortNames.Add(baseTypeIdentifier.Name);
                    continue;
                }

                var interfaceImplTypeIdentifier = (member as IInterfaceImplementation)?.TypeName?.Identifier;
                if (interfaceImplTypeIdentifier != null)
                {
                    extendListShortNames.Add(interfaceImplTypeIdentifier.Name);
                    continue;
                }

                var interfaceInheritTypeIdentifier = (member as IInterfaceInherit)?.TypeName?.Identifier;
                if (interfaceInheritTypeIdentifier != null)
                {
                    extendListShortNames.Add(interfaceInheritTypeIdentifier.Name);
                }
            }

            ExtendsListShortNames = extendListShortNames.ToArray();
        }
Example #3
0
 protected UnionPartBase([NotNull] IUnionDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder,
                         bool hasPublicNestedTypes) : base(declaration, cacheBuilder)
 {
     HasPublicNestedTypes       = hasPublicNestedTypes;
     RepresentationAccessRights = GetRepresentationAccessRights(declaration);
     IsSingleCaseUnion          = declaration.UnionCases.Count == 1;
 }
Example #4
0
        public void Start(
			string path,
			ICacheBuilder cache,
			ICrawlResult crawlReader,
			PluginLocator pluginLocator,
			EventEndpoint eventDispatcher)
        {
            _cache = cache;
            _crawlReader = crawlReader;
            _eventDispatcher = eventDispatcher;
            _tracker = new FileChangeTracker((x) => {
                    _eventDispatcher.Send(
                        "codemodel raw-filesystem-change-" +
                        x.Type.ToString().ToLower() +
                        " \"" + x.Path + "\"");
                });
            pluginLocator.Locate().ToList()
                .ForEach(x =>
                    {
                        var plugin = new PluginPattern(x);
                        _plugins.Add(plugin);
                        _cache.Plugins.Add(
                            new CachedPlugin(x.GetLanguage(), plugin.Patterns));
                    });
            _tracker.Start(path, getFilter(), handleChanges);
        }
Example #5
0
 public CacheService(IRedisCacheProvider redisCacheProvider, IServiceProvider serviceProvider, IUnitOfWork unitOfWork,
                     ICacheBuilder cacheBuilder)
 {
     _redisCacheProvider = redisCacheProvider;
     _serviceProvider    = serviceProvider;
     _unitOfWork         = unitOfWork;
     _cacheBuilder       = cacheBuilder;
 }
Example #6
0
        public void Start(
			string path,
			ICacheBuilder cache,
			ICrawlResult crawlReader,
			PluginLocator pluginLocator,
			EventEndpoint eventDispatcher)
        {
            _cache = cache;
            _crawlReader = crawlReader;
            _eventDispatcher = eventDispatcher;
            Logger.Write("Setting up file trackers");
            Logger.Write("Setting up token file trackers");
            _tracker = new FileChangeTracker((x) => {
                    _eventDispatcher.Send(
                        "codemodel raw-filesystem-change-" +
                        x.Type.ToString().ToLower() +
                        " \"" + x.Path + "\"");
                });
            Logger.Write("Setting up local file trackers");
            _localTracker = new FileChangeTracker((x) => {
                    _eventDispatcher.Send(
                        "codemodel raw-filesystem-change-" +
                        x.Type.ToString().ToLower() +
                        " \"" + x.Path + "\"");
                });
            Logger.Write("Setting up global file trackers");
            _globalTracker = new FileChangeTracker((x) => {
                    _eventDispatcher.Send(
                        "codemodel raw-filesystem-change-" +
                        x.Type.ToString().ToLower() +
                        " \"" + x.Path + "\"");
                });
            Logger.Write("Adding plugins to cache");
            var plugins = pluginLocator.Locate().ToList();
            foreach (var x in plugins) {
                var plugin = new PluginPattern(x);
                _plugins.Add(plugin);
                _cache.Plugins.Add(
                    new CachedPlugin(x.GetLanguage(), plugin.Patterns));
                Logger.Write("Added plugin " + x.GetLanguage());
            }
            Logger.Write("Starting tracker for {0}", path);
            _tracker.Start(path, getFilter(), handleChanges);
            var locator = new ProfileLocator(path);
            if (Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.MacOSX) {
                var profilePath = locator.GetLocalProfilePath(locator.GetActiveLocalProfile());
                if (Directory.Exists(profilePath)) {
                    Logger.Write("Starting tracker for {0}", profilePath);
                    _localTracker.Start(profilePath, getFilter(), handleChanges);
                }
            }
            var globalPath = locator.GetGlobalProfilePath(locator.GetActiveGlobalProfile());
            if (Directory.Exists(globalPath)) {
                Logger.Write("Starting tracker for {0}", globalPath);
                _globalTracker.Start(globalPath, getFilter(), handleChanges);
            }
        }
Example #7
0
        public void BuildCache(IFile file, ICacheBuilder builder)
        {
            var sourceFile = file.GetSourceFile();

            Assertion.AssertNotNull(sourceFile, "sourceFile != null");

            var declarationProcessor = new FSharpCacheDeclarationProcessor(builder, myCheckerService);

            (file as IFSharpFile)?.Accept(declarationProcessor);
        }
Example #8
0
 public TrayForm(CommandEndpoint endpoint, string defaultLanguage, ICacheBuilder builder)
 {
     _endpoint        = endpoint;
     _cacheBuilder    = builder;
     _ctx             = SynchronizationContext.Current;
     _defaultLanguage = defaultLanguage;
     setupForm();
     new Thread(startEngine).Start();
     setupTray();
 }
Example #9
0
 public TrayForm(CommandEndpoint endpoint, string defaultLanguage, ICacheBuilder builder)
 {
     _endpoint = endpoint;
     _cacheBuilder = builder;
     _ctx = SynchronizationContext.Current;
     _defaultLanguage = defaultLanguage;
     new Thread(startEngine).Start();
     setupTray();
     setupForm();
 }
Example #10
0
        public UnionCasePart([NotNull] INestedTypeUnionCaseDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder)
            : base(declaration, ModifiersUtil.GetDecoration(declaration),
                   TreeNodeCollection <ITypeParameterOfTypeDeclaration> .Empty, cacheBuilder)
        {
            var unionShortName = declaration.GetContainingNode <IUnionDeclaration>()?.ShortName;

            ExtendsListShortNames =
                unionShortName != null
          ? new[] { cacheBuilder.Intern(unionShortName) }
          : EmptyArray <string> .Instance;
        }
 public CompleteSnippetHandler(ICacheBuilder cache, string keyPath, CommandEndpoint endpoint)
 {
     _cache = cache;
     _keyPath = keyPath;
     _endpoint = endpoint;
     _dispatch = (msg) => {
         Logger.Write("dispatching " + msg);
         _endpoint.Handle(msg);
     };
     _editor = new EngineLocator(new FS()).GetInstance(_keyPath);
 }
 public CompleteSnippetHandler(ICacheBuilder cache, string keyPath, CommandEndpoint endpoint)
 {
     _cache    = cache;
     _keyPath  = keyPath;
     _endpoint = endpoint;
     _dispatch = (msg) => {
         Logger.Write("dispatching " + msg);
         _endpoint.Handle(msg);
     };
     _editor = new EngineLocator(new FS()).GetInstance(_keyPath);
 }
Example #13
0
        protected FSharpTypeMembersOwnerTypePart([NotNull] IFSharpTypeOldDeclaration declaration,
                                                 [NotNull] ICacheBuilder cacheBuilder)
            : base(declaration, ModifiersUtil.GetDecoration(declaration.AccessModifier, declaration.Attributes),
                   declaration.TypeParameters, cacheBuilder)
        {
            var extendListShortNames = new FrugalLocalHashSet <string>();

            extendListShortNames = ProcessMembers(declaration.TypeMembersEnumerable, extendListShortNames);

            if (declaration is IFSharpTypeDeclaration {
                TypeRepresentation : IObjectModelTypeRepresentation repr
            })
Example #14
0
        public TypeCache(ICacheBuilder cacheBuilder)
        {
            var cacheDataEntities = cacheBuilder.BuildTypeCache <T, T2>();

            cacheData = cacheDataEntities.Values.Select(i => new VmType()
            {
                Id = i.Id, Code = i.Code, OrderNumber = i.OrderNumber, Names = i.Names.Select(j => new VmTypeName()
                {
                    Name = j.Name, LocalizationId = j.LocalizationId
                }).ToList()
            }).ToDictionary(i => i.Code.ToLower(), i => i);
            reverseCache = cacheData.ToDictionary(i => i.Value.Id, i => i.Value);
        }
        public void BuildCache(IFile file, ICacheBuilder builder)
        {
            var sourceFile = file.GetSourceFile();

            Assertion.AssertNotNull(sourceFile, "sourceFile != null");
            // not supported until we have psi modules for scripts
            if (sourceFile.LanguageType.Equals(FSharpScriptProjectFileType.Instance))
            {
                return;
            }

            var declarationProcessor = new FSharpCacheDeclarationProcessor(builder, myCheckerService);

            (file as IFSharpFile)?.Accept(declarationProcessor);
        }
Example #16
0
 /// <summary>
 /// Set a cache builder to use for the specified type of cache
 /// </summary>
 /// <param name="cacheType">The cache type</param>
 /// <param name="cacheBuilder">The cache builder used to create the cache.
 /// If null is passed then the specified cache type will operate without a
 /// cache.
 /// </param>
 /// <returns>The <see cref="DataSetBuilder"/></returns>
 public T SetCacheBuilder(CacheType cacheType, ICacheBuilder cacheBuilder)
 {
     if (_cacheConfiguration.ContainsKey(cacheType))
     {
         _cacheConfiguration[cacheType].Builder = cacheBuilder;
     }
     else
     {
         _cacheConfiguration.Add(cacheType, new CacheOptions()
         {
             Builder = cacheBuilder,
             Size    = CacheTemplate.Default.GetCacheConfiguration()[cacheType].Size
         });
     }
     return((T)this);
 }
Example #17
0
        protected FSharpTypePart([NotNull] T declaration, [NotNull] string shortName, MemberDecoration memberDecoration,
                                 int typeParameters, [NotNull] ICacheBuilder cacheBuilder) : base(declaration, shortName, typeParameters)
        {
            Modifiers = memberDecoration;

            var attrNames = new FrugalLocalHashSet <string>();

            foreach (var attr in declaration.GetAttributes())
            {
                attrNames.Add(cacheBuilder.Intern(attr.GetShortName()));
            }
            AttributeClassNames = attrNames.ToArray();

            var methods = new LocalList <ExtensionMethodInfo>();

            foreach (var member in declaration.MemberDeclarations)
            {
                // There are two interesting scenarios:
                // * Members in types
                // * Bindings in modules
                // Type declaration as a member can only appear in module and we ignore it.
                if (member is ITypeDeclaration)
                {
                    continue;
                }

                // A cheap check until we have a proper attributes resolve during cache building.
                if (!member.GetAttributes().Any(a => a.ShortNameEquals("Extension")))
                {
                    continue;
                }

                var offset = member.GetTreeStartOffset().Offset;
                methods.Add(new ExtensionMethodInfo(AnyCandidateType.INSTANCE, offset, member.DeclaredName)
                {
                    Owner = this
                });
            }

            if (methods.IsEmpty())
            {
                return;
            }

            ExtensionMethodInfos = methods.ToArray();
        }
Example #18
0
        public ObjectExpressionTypePart([NotNull] IObjExpr declaration, [NotNull] ICacheBuilder cacheBuilder)
            : base(declaration, declaration.DeclaredName, MemberDecoration.DefaultValue, 0, cacheBuilder)
        {
            var extendListShortNames = new FrugalLocalHashSet <string>();

            var baseClassOrInterfaceName = declaration.TypeName?.Identifier?.Name;

            if (baseClassOrInterfaceName != null)
            {
                extendListShortNames.Add(baseClassOrInterfaceName);
            }

            foreach (var interfaceImplementation in declaration.InterfaceImplementations)
            {
                var interfaceName = interfaceImplementation.TypeName?.Identifier?.Name;
                if (interfaceName != null)
                {
                    extendListShortNames.Add(interfaceName);
                }
            }

            ExtendsListShortNames = extendListShortNames.ToArray();
        }
Example #19
0
        protected FSharpTypePart([NotNull] T declaration, [NotNull] string shortName, MemberDecoration memberDecoration,
                                 int typeParameters, [NotNull] ICacheBuilder cacheBuilder) : base(declaration, shortName, typeParameters)
        {
            Modifiers = memberDecoration;

            var attributes = declaration.GetAttributes();
            var attrNames  = new FrugalLocalHashSet <string>();

            foreach (var attr in attributes)
            {
                attrNames.Add(cacheBuilder.Intern(attr.LongIdentifier?.Name.GetAttributeShortName()));
            }
            AttributeClassNames = attrNames.ToArray();

            if (!attributes.Any(a => a.ShortNameEquals("Extension")))
            {
                return;
            }

            var methods = new LocalList <ExtensionMethodInfo>();

            foreach (var member in declaration.MemberDeclarations)
            {
                if (!member.GetAttributes().Any(a => a.ShortNameEquals("Extension")))
                {
                    continue;
                }

                var offset = member.GetTreeStartOffset().Offset;
                methods.Add(new ExtensionMethodInfo(AnyCandidateType.INSTANCE, offset, member.DeclaredName)
                {
                    Owner = this
                });
            }

            ExtensionMethodInfos = methods.ToArray();
        }
Example #20
0
        public static string GetNestedModuleShortName(this INestedModuleDeclaration declaration, ICacheBuilder cacheBuilder)
        {
            var parent     = declaration.Parent as IModuleLikeDeclaration;
            var shortName  = declaration.ShortName;
            var moduleName =
                parent?.Children <IFSharpTypeDeclaration>().Any(t => t.TypeParameters.IsEmpty && t.ShortName.Equals(shortName, StringComparison.Ordinal)) ?? false
          ? shortName + "Module"
          : shortName;

            return(cacheBuilder.Intern(moduleName));
        }
Example #21
0
 public StructTypeAbbreviationOrDeclarationPart([NotNull] IFSharpTypeDeclaration declaration,
                                                [NotNull] ICacheBuilder cacheBuilder) : base(declaration, cacheBuilder)
 {
 }
 public ExceptionPart([NotNull] IFSharpTypeDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder)
     : base(declaration, cacheBuilder)
 {
 }
 protected FSharpClassLikePart([NotNull] T declaration, MemberDecoration memberDecoration,
                               TreeNodeCollection <ITypeParameterOfTypeDeclaration> typeParameters, [NotNull] ICacheBuilder cacheBuilder)
     : base(declaration, memberDecoration, typeParameters, cacheBuilder)
 {
 }
Example #24
0
 public SnippetDeleteHandler(ICacheBuilder cache, string keyPath)
 {
     _cache   = cache;
     _keyPath = keyPath;
 }
Example #25
0
 public StructExtensionPart([NotNull] IFSharpTypeDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder)
     : base(declaration, cacheBuilder)
 {
 }
Example #26
0
 public LanguageCache(ICacheBuilder cacheBuilder)
 {
     cacheData = cacheBuilder.BuildCache <Language, string, Guid>(i => i.Code, i => i.Id);
 }
Example #27
0
 public StructUnionPart([NotNull] IUnionDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder,
                        bool hasPublicNestedTypes) : base(declaration, cacheBuilder, hasPublicNestedTypes)
 {
 }
 public SnippetDeleteHandler(ICacheBuilder cache, string keyPath)
 {
     _cache = cache;
     _keyPath = keyPath;
 }
 public CompleteSnippetHandler(Editor editor, ICacheBuilder cache, string keyPath)
 {
     _editor = editor;
     _cache = cache;
     _keyPath = keyPath;
 }
Example #30
0
 public PluginFinder(ICacheBuilder cache)
 {
     _cache = cache;
 }
        protected FSharpTypeParametersOwnerPart([NotNull] T declaration, MemberDecoration memberDecoration,
                                                TreeNodeCollection <ITypeParameterOfTypeDeclaration> typeParameters, [NotNull] ICacheBuilder cacheBuilder)
            : base(declaration, cacheBuilder.Intern(declaration.ShortName), memberDecoration, typeParameters.Count, cacheBuilder)
        {
            var parameters = declaration.TypeParameters;

            if (parameters.Count == 0)
            {
                myTypeParameterNames = EmptyArray <string> .Instance;
                return;
            }

            myTypeParameterNames = new string[typeParameters.Count];
            for (var i = 0; i < typeParameters.Count; i++)
            {
                var name    = typeParameters[i].GetText();
                var trimmed = !name.IsEmpty() && name[0] == '\'' ? name.Substring(1) : name;
                myTypeParameterNames[i] = cacheBuilder.Intern(trimmed);
            }
        }
Example #32
0
 public DelegatePart([NotNull] IDelegateDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder)
     : base(declaration, ModifiersUtil.GetDecoration(declaration.AccessModifier, declaration.AllAttributes),
            declaration.TypeParameters, cacheBuilder)
 {
 }
Example #33
0
 protected TypeAbbreviationOrDeclarationPartBase([NotNull] IFSharpTypeDeclaration declaration,
                                                 [NotNull] ICacheBuilder cacheBuilder) : base(declaration, cacheBuilder, false, true)
 {
 }
Example #34
0
 protected ModulePartBase([NotNull] T declaration, [NotNull] string shortName, MemberDecoration memberDecoration,
                          [NotNull] ICacheBuilder cacheBuilder)
     : base(declaration, shortName, memberDecoration, 0, cacheBuilder)
 {
 }
Example #35
0
 public LanguageOrderCache(ICacheBuilder cacheBuilder)
 {
     cacheData = cacheBuilder.BuildCache <Language, Guid, int>(i => i.Id, i => i.OrderNumber ?? int.MaxValue);
 }
Example #36
0
 public SnippetEditHandler(CommandEndpoint endpoint, ICacheBuilder cache, string keyPath)
 {
     _endpoint = endpoint;
     _cache = cache;
     _keyPath = keyPath;
 }
Example #37
0
 public FSharpCacheDeclarationProcessor(ICacheBuilder builder, FSharpCheckerService checkerService)
 {
     Builder          = builder;
     myCheckerService = checkerService;
 }
Example #38
0
 protected RecordPartBase([NotNull] IFSharpTypeDeclaration declaration, [NotNull] ICacheBuilder cacheBuilder)
     : base(declaration, cacheBuilder)
 {
     CliMutable = declaration.HasAttribute("CLIMutable");
     RepresentationAccessRights = declaration.GetRepresentationAccessRights();
 }