docs: function triggerDropdownAdvanced(){
                  $scope.dropdown.showFilter = false;
                  $scope.dropdown.match = false;
  
                  if(typeof($scope.areaConfig.dropdown) === 'undefined' || $scope.areaConfig.dropdown.length === 0){
                      return;
                  }
  
                  $scope.areaConfig.dropdown.forEach(function(element){
                      // Check if the trigger is under the cursor
                      var text = $scope.areaData,
                          position = getCharacterPosition();
                      if(typeof(element.trigger) === 'string' && element.trigger === text.substr(position - element.trigger.length, element.trigger.length)){
                          // The cursor is exactly at the end of the trigger
  
                          element.list(function(data){
                              $scope.dropdown.content = data.map(function(el){
                                el.display = $sce.trustAsHtml(el.display);
                                return el;
                              });
  
                              $scope.dropdown.customSelect = element.onSelect;
                              $scope.dropdown.mode = element.mode || 'append';
                              $scope.dropdown.match = '';
                              $scope.dropdown.showFilter = element.filter || false;
  
                              $timeout(function(){
                                  $scope.dropdown.filterElement.focus();
                              }, 10);
                          });
                      }else if(typeof(element.trigger) === 'object'){
                          // I need to get the index of the last match
                          var searchable = text.substr(0, position),
                              match, found = false, lastPosition = -1;
                          element.trigger.lastIndex = 0;
                          while ((match = element.trigger.exec(searchable)) !== null){
                              if(match.index === lastPosition){
                                  break;
                              }
                              lastPosition = match.index;
                              if(match.index + match[0].length === position){
                                  found = true;
                                  break;
                              }
                          }
                          if(found){
                              element.list(match, function(data){
                                  $scope.dropdown.content = data.map(function(el){
                                    el.display = $sce.trustAsHtml(el.display);
                                    return el;
                                  });
  
                                  $scope.dropdown.customSelect = element.onSelect;
                                  $scope.dropdown.mode = element.mode || 'append';
                                  $scope.dropdown.match = match[1];
                                  $scope.dropdown.showFilter = element.filter || false;
                              });
  
                          }
                      }
                  });
              }