Пример #1
0
 public PluginDataFileInfo GetFileInfo(string file)
 {
     for (int i = 0; i < source.Count; i++)
     {
         PluginDataFileInfo fileInfo = source[i];
         if (fileInfo.file.Equals(file))
         {
             return(fileInfo);
         }
     }
     return(null);
 }
Пример #2
0
        public async void AfterKeyPressedAsync(
            string Keypress, TextSelection Selection, bool InStatementCompletion)
        {
            String fileName = ObjDte.ActiveWindow.Document.FullName;

            if (!IsTrueEventFile(fileName))
            {
                return;
            }
            InitPluginDataIfNotExists();
            _pluginData.InitFileInfoIfNotExists(fileName);

            PluginDataFileInfo pdfileInfo = _pluginData.GetFileInfo(fileName);

            if (ObjDte.ActiveWindow.Document.Language != null)
            {
                pdfileInfo.syntax = ObjDte.ActiveWindow.Document.Language;
            }
            if (!String.IsNullOrEmpty(Keypress))
            {
                FileInfo fi = new FileInfo(fileName);

                bool isNewLine = false;
                if (Keypress == "\b")
                {
                    // register a delete event
                    pdfileInfo.delete += 1;
                    Logger.Info("Code Time: Delete character incremented");
                }
                else if (Keypress == "\r")
                {
                    isNewLine = true;
                }
                else
                {
                    pdfileInfo.add += 1;
                    Logger.Info("Code Time: KPM incremented");
                }

                if (isNewLine)
                {
                    pdfileInfo.linesAdded += 1;
                }
                // file level keystrokes counter
                pdfileInfo.keystrokes += 1;
                // top level keystrokes counter
                _pluginData.keystrokes += 1;
            }
        }
Пример #3
0
        public static PluginDataFileInfo GetPluginDataFromDict(IDictionary <string, object> dict)
        {
            string             file     = SoftwareCoUtil.ConvertObjectToString(dict, "file");
            PluginDataFileInfo fileInfo = new PluginDataFileInfo(file);

            fileInfo.start        = SoftwareCoUtil.ConvertObjectToLong(dict, "start");
            fileInfo.local_start  = SoftwareCoUtil.ConvertObjectToLong(dict, "local_start");
            fileInfo.end          = SoftwareCoUtil.ConvertObjectToLong(dict, "end");
            fileInfo.local_end    = SoftwareCoUtil.ConvertObjectToLong(dict, "local_end");
            fileInfo.add          = SoftwareCoUtil.ConvertObjectToLong(dict, "add");
            fileInfo.close        = SoftwareCoUtil.ConvertObjectToLong(dict, "close");
            fileInfo.paste        = SoftwareCoUtil.ConvertObjectToLong(dict, "paste");
            fileInfo.netkeys      = SoftwareCoUtil.ConvertObjectToLong(dict, "netkeys");
            fileInfo.linesAdded   = SoftwareCoUtil.ConvertObjectToLong(dict, "linesAdded");
            fileInfo.linesRemoved = SoftwareCoUtil.ConvertObjectToLong(dict, "linesRemoved");
            fileInfo.delete       = SoftwareCoUtil.ConvertObjectToLong(dict, "delete");
            fileInfo.syntax       = SoftwareCoUtil.ConvertObjectToString(dict, "syntax");
            return(fileInfo);
        }
Пример #4
0
        public static PluginData BuildFromDictionary(IDictionary <string, object> dict)
        {
            PluginDataProject proj = SoftwareCoUtil.ConvertObjectToProject(dict);
            PluginData        pd   = new PluginData(proj.name, proj.directory);

            pd.end         = SoftwareCoUtil.ConvertObjectToLong(dict, "end");
            pd.start       = SoftwareCoUtil.ConvertObjectToLong(dict, "start");
            pd.local_end   = SoftwareCoUtil.ConvertObjectToLong(dict, "local_end");
            pd.local_start = SoftwareCoUtil.ConvertObjectToLong(dict, "local_start");
            pd.keystrokes  = SoftwareCoUtil.ConvertObjectToLong(dict, "keystrokes");
            pd.cumulative_editor_seconds = SoftwareCoUtil.ConvertObjectToLong(dict, "cumulative_editor_seconds");
            pd.os       = SoftwareCoUtil.ConvertObjectToString(dict, "os");
            pd.offset   = SoftwareCoUtil.ConvertObjectToDouble(dict, "offset");
            pd.version  = SoftwareCoUtil.ConvertObjectToString(dict, "version");
            pd.timezone = SoftwareCoUtil.ConvertObjectToString(dict, "timezone");
            pd.cumulative_session_seconds = SoftwareCoUtil.ConvertObjectToLong(dict, "cumulative_session_seconds");
            pd.pluginId           = SoftwareCoUtil.ConvertObjectToInt(dict, "pluginId");
            pd.elapsed_seconds    = SoftwareCoUtil.ConvertObjectToLong(dict, "elapsed_seconds");
            pd.workspace_name     = SoftwareCoUtil.ConvertObjectToString(dict, "workspace_name");
            pd.hostname           = SoftwareCoUtil.ConvertObjectToString(dict, "hostname");
            pd.project_null_error = SoftwareCoUtil.ConvertObjectToString(dict, "project_null_error");
            pd.project            = proj;
            IDictionary <string, object> sourceDict = SoftwareCoUtil.ConvertObjectToSource(dict);

            if (sourceDict != null && sourceDict.Count > 0)
            {
                foreach (KeyValuePair <string, object> entry in sourceDict)
                {
                    IDictionary <string, object> fileInfoDict = new Dictionary <string, object>();
                    try
                    {
                        PluginDataFileInfo fileInfo = PluginDataFileInfo.GetPluginDataFromDict((JsonObject)entry.Value);
                        pd.source.Add(fileInfo);
                    }
                    catch (Exception e)
                    {
                        //
                    }
                }
            }
            return(pd);
        }