pygments-custom-lexer-apex

Uses pygments-lexer-apex (GitHub) package to colorize Salesforce Apex language.

Including FundController.apxc should show this file properly colorized by pygments.

 1GLOBAL with sharing class FundController {
 2
 3    public class PagedResult {
 4
 5        @AuraEnabled
 6        public Integer pageSize { get;set; }
 7
 8        @AuraEnabled
 9        public Integer page { get;set; }
10
11        @AuraEnabled
12        public Integer total { get;set; }
13
14        @AuraEnabled
15        public List<Fund__c> funds { get;set; }
16
17    }
18
19    public class Filter {
20
21        @AuraEnabled
22        public String searchKey { get;set; }
23
24        @AuraEnabled
25        public String assetClass { get;set; }
26
27        @AuraEnabled
28        public String sector { get;set; }
29
30        @AuraEnabled
31        public Decimal minYtdReturn { get;set; }
32
33        @AuraEnabled
34        public Decimal maxYtdReturn { get;set; }
35
36        @AuraEnabled
37        public Decimal min1YearReturn { get;set; }
38
39        @AuraEnabled
40        public Decimal max1YearReturn { get;set; }
41
42        @AuraEnabled
43        public Decimal min5YearReturn { get;set; }
44
45        @AuraEnabled
46        public Decimal max5YearReturn { get;set; }
47    }
48
49    @AuraEnabled
50    public static PagedResult getFunds(String filters, Decimal pageSize, Decimal pageNumber) {
51        Filter filter = (Filter) JSON.deserializeStrict(filters, FundController.Filter.class);
52        Integer pSize = (Integer)pageSize;
53        String key = '%' + filter.searchKey + '%';
54        Integer offset = ((Integer)pageNumber - 1) * pSize;
55        PagedResult r =  new PagedResult();
56        DELETe r;
57        r.pageSize = pSize;
58        r.page = (Integer) pageNumber;
59        r.total = [SELECT count() FROM Fund__c
60                   WHERE name LIKE :key
61                   AND Asset_Class__c like : (filter.assetClass == '' ? '%' : filter.assetClass)
62                   AND Sector__r.Name like : (filter.sector == '' ? '%' : filter.sector)
63                   AND YTD_Return__c >= :filter.minYtdReturn AND YTD_Return__c <= :filter.maxYtdReturn
64                   AND One_Year_Return__c >= :filter.min1YearReturn AND One_Year_Return__c <= :filter.max1YearReturn
65                   AND Five_Year_Return__c >= :filter.min5YearReturn AND Five_Year_Return__c <= :filter.max5YearReturn
66                  ];
67        r.funds = [SELECT id, name, abbreviation__c, asset_class__c, sector__r.Name, rating__c, YTD_Return__c, One_Year_Return__c, Two_Year_Return__c, Five_Year_Return__c FROM Fund__c
68                   WHERE name LIKE :key
69                   AND Asset_Class__c like : (filter.assetClass == '' ? '%' : filter.assetClass)
70                   AND Sector__r.Name like : (filter.sector == '' ? '%' : filter.sector)
71                   AND YTD_Return__c >= :filter.minYtdReturn AND YTD_Return__c <= :filter.maxYtdReturn
72                   AND One_Year_Return__c >= :filter.min1YearReturn AND One_Year_Return__c <= :filter.max1YearReturn
73                   AND Five_Year_Return__c >= :filter.min5YearReturn AND Five_Year_Return__c <= :filter.max5YearReturn
74                   LIMIT :pSize OFFSET :offset];
75        return r;
76    }
77
78    @AuraEnabled
79    public static List<String> getAssetClasses() {
80        Schema.DescribeFieldResult result = Fund__c.Asset_Class__c.getDescribe();
81        List<Schema.PicklistEntry> entries = result.getPicklistValues();
82        List<String> values = new list <String>();
83        for (Schema.PicklistEntry entry: entries) {
84            values.add(entry.getValue());
85        }
86        return values;
87    }
88
89    @AuraEnabled
90    public static Sector__c[] getSectors() {
91        return [SELECT Id, Name FROM Sector__c ORDER BY Name];
92    }
93
94}