public void Handle(Guid clientID, CommandMessage message)
 {
     if (message.Arguments.Count != 1)
         return;
     var position = new OpenIDE.Core.CommandBuilding.FilePosition(message.Arguments[0]);
     var extension = Path.GetExtension(position.Fullpath);
     var language = new PluginFinder(_cache).FindLanguage(extension);
     if (language == null)
         return;
     var plugin = _pluginLocator.Locate()
         .FirstOrDefault(x => x.GetLanguage() == language);
     if (plugin == null)
         return;
     var signature = plugin.SignatureFromPosition(position);
     if (signature == null)
         return;
     var codeRef = _cache.AllSignatures()
         .FirstOrDefault(x => x.Signature == signature.Signature &&
             x.File == signature.File);
     if (codeRef == null)
         return;
     _endpoint.Editor.Send(
         string.Format("goto \"{0}|{1}|{2}\"",
             codeRef.File,
             codeRef.Line,
             codeRef.Column));
 }
示例#2
0
 private Query getQuery(CommandMessage message)
 {
     var query = "";
     if (message.Arguments.Count > 0)
         query = message.Arguments[0];
     var queryArgs = new QueryArgumentParser().Parse(query);
     if (queryArgs == null)
         return null;
     return new Query()
         {
             File = getValue(queryArgs, "file")
         };
 }
示例#3
0
 public void Handle(Guid clientID, CommandMessage message)
 {
     if (clientID == Guid.Empty)
         return;
     var query = getQuery(message);
     var sb = new StringBuilder();
     sb.Append(message.CorrelationID);
     var formatter = new CacheFormatter();
     _cache.AllProjects()
         .Where(x => filter(x, query)).ToList()
         .ForEach(x => sb.AppendLine(formatter.Format(x)));
     _endpoint.Send(sb.ToString(), clientID);
 }
示例#4
0
        public void Handle(Guid clientID, CommandMessage message)
        {
            var arguments = message.Arguments.ToArray();
            if (arguments.Length < 2)
                return;
            var language = new PluginFinder(_cache).FindLanguage(arguments[0]);
            if (language == null)
                return;
            var file = getLocal(arguments);
            if (!File.Exists(file))
                file = getGlobal(arguments);

            if (!File.Exists(file))
                return;
            _endpoint.Editor.Send(string.Format("goto \"{0}|0|0\"", file));
        }
        public void Handle(Guid clientID, CommandMessage message)
        {
            var arguments = message.Arguments.ToArray();
            if (arguments.Length < 2)
                return;
            var language = new PluginFinder(_cache).FindLanguage(arguments[0]);
            if (language == null)
                return;
            var file = getLocal(arguments);
            if (!File.Exists(file))
                file = getGlobal(arguments);

            if (!File.Exists(file))
                return;
            File.Delete(file);
        }
示例#6
0
 public void Handle(Guid clientID, CommandMessage message)
 {
     if (message.Arguments.Count != 1)
         return;
     if (clientID == Guid.Empty)
         return;
     var sb = new StringBuilder();
     sb.Append(message.CorrelationID);
     var formatter = new CacheFormatter();
     _cache.Find(message.Arguments[0])
         .GroupBy(x => x.File).ToList()
         .ForEach(x =>
             {
                 sb.AppendLine(formatter.FormatFile(x.Key));
                 x.ToList()
                     .ForEach(y => sb.AppendLine(formatter.Format(y)));
             });
     _endpoint.Send(sb.ToString(), clientID);
 }
示例#7
0
 public bool Handles(CommandMessage message)
 {
     return message.Command.Equals("snippet-edit");
 }
示例#8
0
 public bool Handles(CommandMessage message)
 {
     return message.Command.Equals("get-files");
 }
 public bool Handles(CommandMessage message)
 {
     return message.Command.Equals("goto-defiinition");
 }
 public bool Handles(CommandMessage message)
 {
     return message.Command.Equals("get-signature-refs");
 }
示例#11
0
 public bool Handles(CommandMessage message)
 {
     return message.Command.Equals("find-types");
 }