mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-05-16 18:59:09 +00:00
[commands] Fix ext.commands help page full-width indentation
add _string_width function to util. Changed string width calculate function from len() to util function _string_width().
This commit is contained in:
parent
e53c85110f
commit
d107f485a5
@ -26,6 +26,7 @@ DEALINGS IN THE SOFTWARE.
|
|||||||
|
|
||||||
import itertools
|
import itertools
|
||||||
import inspect
|
import inspect
|
||||||
|
import discord.utils
|
||||||
|
|
||||||
from .core import GroupMixin, Command
|
from .core import GroupMixin, Command
|
||||||
from .errors import CommandError
|
from .errors import CommandError
|
||||||
@ -172,7 +173,7 @@ class HelpFormatter:
|
|||||||
try:
|
try:
|
||||||
commands = self.command.all_commands if not self.is_cog() else self.context.bot.all_commands
|
commands = self.command.all_commands if not self.is_cog() else self.context.bot.all_commands
|
||||||
if commands:
|
if commands:
|
||||||
return max(map(lambda c: len(c.name) if self.show_hidden or not c.hidden else 0, commands.values()))
|
return max(map(lambda c: discord.utils._string_width(c.name) if self.show_hidden or not c.hidden else 0, commands.values()))
|
||||||
return 0
|
return 0
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
return len(self.command.name)
|
return len(self.command.name)
|
||||||
@ -250,8 +251,8 @@ class HelpFormatter:
|
|||||||
if name in command.aliases:
|
if name in command.aliases:
|
||||||
# skip aliases
|
# skip aliases
|
||||||
continue
|
continue
|
||||||
|
width_gap = discord.utils._string_width(name) - len(name)
|
||||||
entry = ' {0:<{width}} {1}'.format(name, command.short_doc, width=max_width)
|
entry = ' {0:<{width}} {1}'.format(name, command.short_doc, width=max_width-width_gap)
|
||||||
shortened = self.shorten(entry)
|
shortened = self.shorten(entry)
|
||||||
self._paginator.add_line(shortened)
|
self._paginator.add_line(shortened)
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ DEALINGS IN THE SOFTWARE.
|
|||||||
|
|
||||||
import array
|
import array
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import unicodedata
|
||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
from bisect import bisect_left
|
from bisect import bisect_left
|
||||||
import datetime
|
import datetime
|
||||||
@ -39,6 +40,7 @@ import warnings
|
|||||||
from .errors import InvalidArgument
|
from .errors import InvalidArgument
|
||||||
|
|
||||||
DISCORD_EPOCH = 1420070400000
|
DISCORD_EPOCH = 1420070400000
|
||||||
|
UNICODE_WIDE_CHAR_TYPE = u"WFA"
|
||||||
|
|
||||||
class cached_property:
|
class cached_property:
|
||||||
def __init__(self, function):
|
def __init__(self, function):
|
||||||
@ -324,3 +326,10 @@ class SnowflakeList(array.array):
|
|||||||
def has(self, element):
|
def has(self, element):
|
||||||
i = bisect_left(self, element)
|
i = bisect_left(self, element)
|
||||||
return i != len(self) and self[i] == element
|
return i != len(self) and self[i] == element
|
||||||
|
|
||||||
|
def _string_width(string):
|
||||||
|
"""Returns string's width."""
|
||||||
|
width = 0
|
||||||
|
for char in string:
|
||||||
|
width += 2 if unicodedata.east_asian_width(char) in UNICODE_WIDE_CHAR_TYPE else 1
|
||||||
|
return width
|
||||||
|
Loading…
x
Reference in New Issue
Block a user