Ignore:
Timestamp:
Nov 30, 2012, 6:40:43 PM (7 years ago)
Author:
sam
Message:

vslol: add licensing information to important files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/vslol/LolFxLanguageService.cs

    r2118 r2123  
    1 using System;
     1//
     2// Lol Engine - VsLol add-in for Visual Studio
     3//
     4// Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net>
     5//   This program is free software; you can redistribute it and/or
     6//   modify it under the terms of the Do What The Fuck You Want To
     7//   Public License, Version 2, as published by Sam Hocevar. See
     8//   http://www.wtfpl.net/ for more details.
     9//
     10
    211using System.Collections.Generic;
    312using System.Linq;
     
    918using Microsoft.VisualStudio.OLE.Interop;
    1019
    11 namespace Lol.VisualStudio.Plugin
     20namespace lol
    1221{
    13     class LolFxLanguageService : LanguageService
     22
     23class LolFxLanguageService : LanguageService
     24{
     25    public override string GetFormatFilterList()
    1426    {
    15         public override string GetFormatFilterList()
     27        throw new NotImplementedException();
     28    }
     29
     30    public override LanguagePreferences GetLanguagePreferences()
     31    {
     32        if (m_preferences == null)
    1633        {
    17             throw new NotImplementedException();
     34            m_preferences = new LanguagePreferences(this.Site,
     35                             typeof(LolFxLanguageService).GUID, this.Name);
     36            m_preferences.Init();
     37        }
     38        return m_preferences;
     39    }
     40
     41    public override IScanner GetScanner(IVsTextLines buffer)
     42    {
     43        if (m_scanner == null)
     44        {
     45             m_scanner = new LolFxScanner(buffer);
     46        }
     47        return m_scanner;
     48    }
     49
     50    public override string Name
     51    {
     52        get { return "LolFx"; }
     53    }
     54
     55    public override AuthoringScope ParseSource(ParseRequest req)
     56    {
     57        return new LolFxAuthoringScope();
     58    }
     59
     60    private LanguagePreferences m_preferences;
     61    private LolFxScanner m_scanner;
     62
     63    internal class LolFxScanner : IScanner
     64    {
     65        public LolFxScanner(IVsTextBuffer buffer)
     66        {
     67            m_buffer = buffer;
    1868        }
    1969
    20         public override LanguagePreferences GetLanguagePreferences()
     70        bool IScanner.ScanTokenAndProvideInfoAboutIt(TokenInfo tokeninfo, ref int state)
    2171        {
    22             if (m_preferences == null)
     72            while (m_offset < m_source.Length)
    2373            {
    24                 m_preferences = new LanguagePreferences(this.Site,
    25                                  typeof(LolFxLanguageService).GUID, this.Name);
    26                 m_preferences.Init();
     74                if (m_source[m_offset] == ' ' || m_source[m_offset] == '\t')
     75                   {
     76                    ++m_offset;
     77                    continue;
     78                   }
     79
     80                tokeninfo.StartIndex = m_offset;
     81                tokeninfo.EndIndex = m_offset;
     82                tokeninfo.Type = TokenType.Unknown;
     83                switch (state % 4)
     84                   {
     85                    case 0: tokeninfo.Color = TokenColor.Number; break;
     86                    case 1: tokeninfo.Color = TokenColor.Text; break;
     87                    case 2: tokeninfo.Color = TokenColor.Keyword; break;
     88                    case 3: tokeninfo.Color = TokenColor.Comment; break;
     89                }
     90                ++m_offset;
     91                ++state;
     92                return true;
    2793            }
    28             return m_preferences;
     94
     95            return false;
    2996        }
    3097
    31         public override IScanner GetScanner(IVsTextLines buffer)
     98        enum State
    3299        {
    33             if (m_scanner == null)
    34             {
    35                  m_scanner = new LolFxScanner(buffer);
    36             }
    37             return m_scanner;
     100            Default,
     101            CComment,
     102            CppComment,
     103            String,
    38104        }
    39105
    40         public override string Name
     106        void IScanner.SetSource(string source, int offset)
    41107        {
    42             get { return "LolFx"; }
     108            m_source = source;
     109            m_offset = offset;
    43110        }
    44111
    45         public override AuthoringScope ParseSource(ParseRequest req)
     112        private IVsTextBuffer m_buffer;
     113        string m_source;
     114        int m_offset;
     115    }
     116
     117    internal class LolFxAuthoringScope : AuthoringScope
     118    {
     119        public override string GetDataTipText(int line, int col, out TextSpan span)
    46120        {
    47             return new LolFxAuthoringScope();
     121            span = new TextSpan();
     122            return null;
    48123        }
    49124
    50         private LanguagePreferences m_preferences;
    51         private LolFxScanner m_scanner;
    52 
    53         internal class LolFxScanner : IScanner
     125        public override Declarations GetDeclarations(IVsTextView view,
     126                                                     int line,
     127                                                     int col,
     128                                                     TokenInfo info,
     129                                                     ParseReason reason)
    54130        {
    55             public LolFxScanner(IVsTextBuffer buffer)
    56             {
    57                 m_buffer = buffer;
    58             }
    59 
    60             bool IScanner.ScanTokenAndProvideInfoAboutIt(TokenInfo tokeninfo, ref int state)
    61             {
    62                 while (m_offset < m_source.Length)
    63                 {
    64                     if (m_source[m_offset] == ' ' || m_source[m_offset] == '\t')
    65                        {
    66                         ++m_offset;
    67                         continue;
    68                        }
    69 
    70                     tokeninfo.StartIndex = m_offset;
    71                     tokeninfo.EndIndex = m_offset;
    72                     tokeninfo.Type = TokenType.Unknown;
    73                     switch (state % 4)
    74                        {
    75                         case 0: tokeninfo.Color = TokenColor.Number; break;
    76                         case 1: tokeninfo.Color = TokenColor.Text; break;
    77                         case 2: tokeninfo.Color = TokenColor.Keyword; break;
    78                         case 3: tokeninfo.Color = TokenColor.Comment; break;
    79                     }
    80                     ++m_offset;
    81                     ++state;
    82                     return true;
    83                 }
    84 
    85                 return false;
    86             }
    87 
    88             enum State
    89             {
    90                 Default,
    91                 CComment,
    92                 CppComment,
    93                 String,
    94             }
    95 
    96             void IScanner.SetSource(string source, int offset)
    97             {
    98                 m_source = source;
    99                 m_offset = offset;
    100             }
    101 
    102             private IVsTextBuffer m_buffer;
    103             string m_source;
    104             int m_offset;
     131            return null;
    105132        }
    106133
    107         internal class LolFxAuthoringScope : AuthoringScope
     134        public override string Goto(VSConstants.VSStd97CmdID cmd, IVsTextView textView, int line, int col, out TextSpan span)
    108135        {
    109             public override string GetDataTipText(int line, int col, out TextSpan span)
    110             {
    111                 span = new TextSpan();
    112                 return null;
    113             }
     136            span = new TextSpan();
     137            return null;
     138        }
    114139
    115             public override Declarations GetDeclarations(IVsTextView view,
    116                                                          int line,
    117                                                          int col,
    118                                                          TokenInfo info,
    119                                                          ParseReason reason)
    120             {
    121                 return null;
    122             }
    123 
    124             public override string Goto(VSConstants.VSStd97CmdID cmd, IVsTextView textView, int line, int col, out TextSpan span)
    125             {
    126                 span = new TextSpan();
    127                 return null;
    128             }
    129 
    130             public override Methods GetMethods(int line, int col, string name)
    131             {
    132                 return null;
    133             }
     140        public override Methods GetMethods(int line, int col, string name)
     141        {
     142            return null;
    134143        }
    135144    }
    136145}
    137146
     147} /* namespace lol */
Note: See TracChangeset for help on using the changeset viewer.