Hirse / brackets-outline-list

Extension for Brackets and Phoenix to display a list of the functions or definitions in the currently opened document.
MIT License
79 stars 30 forks source link

PHP abstract class definitions are not displayed correctly. #76

Closed pelatx closed 7 years ago

pelatx commented 7 years ago

Details about your environment Debian Stretch

What did you do? Please include the actual source code causing the issue.

I opened Outline List on a PHP file that contained an abstract class.

<?php

namespace ORMizer;

abstract class BaseAdapter {

    const STRING    = 'string';
    const INTEGER   = 'int';
    const DECIMAL   = 'float';
    const DATETIME  = 'datetime';

    protected $db_link;
    protected static $instance;

    protected function __construct() {
        $this->db_link = new PDOWrapper (
            Config::DBMS,
            Config::DBMS_HOST,
            Config::DBMS_PORT,
            Config::APP_DB_USER,
            Config::APP_DB_USER_PASS,
            Config::APP_DB
        );
    }

    public static function instance() {
        if (!isset(self::$instance)) {
            $class = static::class;
            self::$instance = new $class;
        }
        return self::$instance;
    }

    public function __clone(){}

    public function _json_encode($array=array()) {
        array_walk_recursive($array, function(&$val) {
            $val = utf8_encode($val);
        });
        return json_encode($array);
    }

    abstract public function insertRow($table, $props_array);

    abstract public function updateRow($table, $props_array);

    abstract public function getRow($table, $column, $value);

    abstract public function deleteRow($table, $ormizer_id);

    abstract public function getAll($table);

    abstract public function existsTable($table_name);

    abstract public function createTable($table_name, $columns_array);

    abstract public function getTableDescription($table);

    abstract public function findTables($pattern);

    abstract public function createAliasTable($referenced_table);

    abstract public function insertAlias($alias, $ormizer_id, $referenced_table);

    abstract protected function castColumns($columns_array);
}
?>

What did you expect to happen? How did you expect the Outline to look?

That abstract functions are normally displayed. For example: "BaseAdapter :: getRow ($ table, $ column, $ value)".

What actually happened? How did the Outline actually look? Abstract functions are not displayed correctly. For example: "BaseAdapter :: instance :: insertRow :: abstract :: updateRow :: abstract :: getRow :: abstract"

Developer Tools:

Bad Parameter in _getRelativeMenuItem(): relative position specified with no relativeID ErrorNotification.js:122 _getRelativeMenuItem(): MenuItem with Command id toolkit.addtext not found in Menu help-menu ErrorNotification.js:122 Cannot assign Ctrl-Alt-G to catanghel.searchwithgoogle. It is already assigned to catanghel.searchwithgoogle ErrorNotification.js:122 Cannot assign Ctrl-Alt-W to catanghel.searchwithgoogle.stackoverflow. It is already assigned to catanghel.searchwithgoogle.stackoverflow ErrorNotification.js:122 Cannot assign Ctrl-Alt-H to catanghel.searchwithgoogle.phpnet. It is already assigned to view.toggleSidebar ErrorNotification.js:122 Cannot assign Ctrl-Alt-H to catanghel.searchwithgoogle.phpnet. It is already assigned to view.toggleSidebar ErrorNotification.js:122 Cannot assign Ctrl-Alt-M to catanghel.searchwithgoogle.mdn. It is already assigned to catanghel.searchwithgoogle.mdn ErrorNotification.js:122

Finally

I have modified the extension and corrected the problem. But I am new to Github and have never sent a PR. If the author agrees, I can look at how to do it and send him my changes.