GET https://kbin.spritesserver.nl/index.php/u/@crank@beehaw.org/threads/hot

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
1.05 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.06 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\Entry {#2371
  +user: App\Entity\User {#265 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1724 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1630 …}
  +slug: "How-to-keep-all-email-locally-in-a-useful-format"
  +title: "How to keep all email locally in a useful format that can be searched across devices?"
  +url: null
  +body: """
    I have an account on an SMTP server. The server has a storage quota. I’d like the delete stuff from the server but keep it locally in case I need it. Just in case.\n
    \n
    I’d like to be able to access the mail somehow on other computers and hopefully mobile devices on my network so that it can be searched when needed. I’m not sure what the best interface for that would be. A webmail client?\n
    \n
    One option would be to use Thunderbird or another client to download the mail once in a while but disable deleting local messages when they are removed from the server. Would Thunderbird store the messages in a format I can use readily with other applications? Or should I use something else to download the mail?\n
    \n
    What about situations where messages are moved from one folder to another on the server? Would I get a duplicate locally of the message appearing in both locations? Not sure how the storage and metadata actually are.\n
    \n
    Also, is it possible in such a situation to put a message *back* on the server if I realize it was deleted in error?\n
    \n
    Any idea would be welcome. I am a bit stuck.\n
    \n
    I can use the command line comfortably but ideally I’d have a solution that doesn’t rely on the terminal to find find messages and such. I don’t really like terminal mail clients.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 33
  +favouriteCount: 31
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1700654753 {#2457
    date: 2023-11-22 13:05:53.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2370 …}
  +votes: Doctrine\ORM\PersistentCollection {#2470 …}
  +reports: Doctrine\ORM\PersistentCollection {#2469 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2364 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2380 …}
  +badges: Doctrine\ORM\PersistentCollection {#2382 …}
  +children: []
  -id: 14004
  -titleTs: "'across':15 'devic':16 'email':5 'format':10 'keep':3 'local':6 'search':14 'use':9"
  -bodyTs: "'abl':41 'access':43 'account':4 'actual':170 'also':172 'anoth':88,146 'appear':159 'applic':124 'back':184 'best':71 'bit':204 'case':29,35 'client':79,89,240 'comfort':212 'command':210 'comput':49 'd':16,37,216 'delet':19,100,193 'devic':53 'disabl':99 'doesn':221 'download':91,132 'duplic':154 'els':130 'error':195 'find':228,229 'folder':144 'format':117 'get':152 'hope':51 'idea':197 'ideal':214 'interfac':72 'keep':25 'like':17,38,237 'line':211 'local':27,101,155 'locat':162 'm':66 'mail':45,93,134,239 'messag':102,114,139,158,183,230 'metadata':169 'mobil':52 'move':141 'need':31,64 'network':56 'one':80,143 'option':81 'possibl':175 'put':181 'quota':14 'readili':121 'realiz':190 'realli':236 'reli':223 'remov':106 'search':62 'server':8,10,23,109,149,187 'situat':137,179 'smtp':7 'solut':219 'somehow':46 'someth':129 'storag':13,167 'store':112 'stuck':205 'stuff':20 'sure':68,164 'termin':226,238 'thunderbird':86,111 'use':85,120,128,208 'webmail':78 'welcom':200 'would':75,82,110,150,198"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1700352061
  +visibility: "visible             "
  +apId: "https://beehaw.org/post/9647306"
  +editedAt: null
  +createdAt: DateTimeImmutable @1700265661 {#2460
    date: 2023-11-18 01:01:01.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\Entry {#2371
  +user: App\Entity\User {#265 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1724 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1630 …}
  +slug: "How-to-keep-all-email-locally-in-a-useful-format"
  +title: "How to keep all email locally in a useful format that can be searched across devices?"
  +url: null
  +body: """
    I have an account on an SMTP server. The server has a storage quota. I’d like the delete stuff from the server but keep it locally in case I need it. Just in case.\n
    \n
    I’d like to be able to access the mail somehow on other computers and hopefully mobile devices on my network so that it can be searched when needed. I’m not sure what the best interface for that would be. A webmail client?\n
    \n
    One option would be to use Thunderbird or another client to download the mail once in a while but disable deleting local messages when they are removed from the server. Would Thunderbird store the messages in a format I can use readily with other applications? Or should I use something else to download the mail?\n
    \n
    What about situations where messages are moved from one folder to another on the server? Would I get a duplicate locally of the message appearing in both locations? Not sure how the storage and metadata actually are.\n
    \n
    Also, is it possible in such a situation to put a message *back* on the server if I realize it was deleted in error?\n
    \n
    Any idea would be welcome. I am a bit stuck.\n
    \n
    I can use the command line comfortably but ideally I’d have a solution that doesn’t rely on the terminal to find find messages and such. I don’t really like terminal mail clients.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 33
  +favouriteCount: 31
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1700654753 {#2457
    date: 2023-11-22 13:05:53.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2370 …}
  +votes: Doctrine\ORM\PersistentCollection {#2470 …}
  +reports: Doctrine\ORM\PersistentCollection {#2469 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2364 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2380 …}
  +badges: Doctrine\ORM\PersistentCollection {#2382 …}
  +children: []
  -id: 14004
  -titleTs: "'across':15 'devic':16 'email':5 'format':10 'keep':3 'local':6 'search':14 'use':9"
  -bodyTs: "'abl':41 'access':43 'account':4 'actual':170 'also':172 'anoth':88,146 'appear':159 'applic':124 'back':184 'best':71 'bit':204 'case':29,35 'client':79,89,240 'comfort':212 'command':210 'comput':49 'd':16,37,216 'delet':19,100,193 'devic':53 'disabl':99 'doesn':221 'download':91,132 'duplic':154 'els':130 'error':195 'find':228,229 'folder':144 'format':117 'get':152 'hope':51 'idea':197 'ideal':214 'interfac':72 'keep':25 'like':17,38,237 'line':211 'local':27,101,155 'locat':162 'm':66 'mail':45,93,134,239 'messag':102,114,139,158,183,230 'metadata':169 'mobil':52 'move':141 'need':31,64 'network':56 'one':80,143 'option':81 'possibl':175 'put':181 'quota':14 'readili':121 'realiz':190 'realli':236 'reli':223 'remov':106 'search':62 'server':8,10,23,109,149,187 'situat':137,179 'smtp':7 'solut':219 'somehow':46 'someth':129 'storag':13,167 'store':112 'stuck':205 'stuff':20 'sure':68,164 'termin':226,238 'thunderbird':86,111 'use':85,120,128,208 'webmail':78 'welcom':200 'would':75,82,110,150,198"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1700352061
  +visibility: "visible             "
  +apId: "https://beehaw.org/post/9647306"
  +editedAt: null
  +createdAt: DateTimeImmutable @1700265661 {#2460
    date: 2023-11-18 01:01:01.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\Entry {#2371
  +user: App\Entity\User {#265 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1724 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1630 …}
  +slug: "How-to-keep-all-email-locally-in-a-useful-format"
  +title: "How to keep all email locally in a useful format that can be searched across devices?"
  +url: null
  +body: """
    I have an account on an SMTP server. The server has a storage quota. I’d like the delete stuff from the server but keep it locally in case I need it. Just in case.\n
    \n
    I’d like to be able to access the mail somehow on other computers and hopefully mobile devices on my network so that it can be searched when needed. I’m not sure what the best interface for that would be. A webmail client?\n
    \n
    One option would be to use Thunderbird or another client to download the mail once in a while but disable deleting local messages when they are removed from the server. Would Thunderbird store the messages in a format I can use readily with other applications? Or should I use something else to download the mail?\n
    \n
    What about situations where messages are moved from one folder to another on the server? Would I get a duplicate locally of the message appearing in both locations? Not sure how the storage and metadata actually are.\n
    \n
    Also, is it possible in such a situation to put a message *back* on the server if I realize it was deleted in error?\n
    \n
    Any idea would be welcome. I am a bit stuck.\n
    \n
    I can use the command line comfortably but ideally I’d have a solution that doesn’t rely on the terminal to find find messages and such. I don’t really like terminal mail clients.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 33
  +favouriteCount: 31
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1700654753 {#2457
    date: 2023-11-22 13:05:53.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2370 …}
  +votes: Doctrine\ORM\PersistentCollection {#2470 …}
  +reports: Doctrine\ORM\PersistentCollection {#2469 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2364 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2380 …}
  +badges: Doctrine\ORM\PersistentCollection {#2382 …}
  +children: []
  -id: 14004
  -titleTs: "'across':15 'devic':16 'email':5 'format':10 'keep':3 'local':6 'search':14 'use':9"
  -bodyTs: "'abl':41 'access':43 'account':4 'actual':170 'also':172 'anoth':88,146 'appear':159 'applic':124 'back':184 'best':71 'bit':204 'case':29,35 'client':79,89,240 'comfort':212 'command':210 'comput':49 'd':16,37,216 'delet':19,100,193 'devic':53 'disabl':99 'doesn':221 'download':91,132 'duplic':154 'els':130 'error':195 'find':228,229 'folder':144 'format':117 'get':152 'hope':51 'idea':197 'ideal':214 'interfac':72 'keep':25 'like':17,38,237 'line':211 'local':27,101,155 'locat':162 'm':66 'mail':45,93,134,239 'messag':102,114,139,158,183,230 'metadata':169 'mobil':52 'move':141 'need':31,64 'network':56 'one':80,143 'option':81 'possibl':175 'put':181 'quota':14 'readili':121 'realiz':190 'realli':236 'reli':223 'remov':106 'search':62 'server':8,10,23,109,149,187 'situat':137,179 'smtp':7 'solut':219 'somehow':46 'someth':129 'storag':13,167 'store':112 'stuck':205 'stuff':20 'sure':68,164 'termin':226,238 'thunderbird':86,111 'use':85,120,128,208 'webmail':78 'welcom':200 'would':75,82,110,150,198"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1700352061
  +visibility: "visible             "
  +apId: "https://beehaw.org/post/9647306"
  +editedAt: null
  +createdAt: DateTimeImmutable @1700265661 {#2460
    date: 2023-11-18 01:01:01.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
6 DENIED moderate
App\Entity\Entry {#1566
  +user: App\Entity\User {#265 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1724 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1630 …}
  +slug: "I-remember-why-I-stopped-using-Geany-text-editor-comment"
  +title: "I remember why I stopped using Geany text editor: comment toggling not as expected"
  +url: null
  +body: """
    Since [Geany 2.0 has recently been released](https://www.geany.org/documentation/releasenotes/) I decided to switch back to it from Kate. I used to like Geany but it had some problems I couldn’t quite remember.\n
    \n
    So I quickly remembered the problem. I can’t figure out how to configure it to properly comment and comment blocks of code. Say you have the following in a file of type `shell script`:\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;"># a comment\n
    </span><span style="color:#323232;">\t</span><span style="color:#62a35c;">echo </span><span style="color:#323232;">$variable\n
    </span>\n
    ```\n
    \n
    I want to be able to select the above lines and use a keybinding to comment them out, so the result would be:\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">## a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">#echo $variable\n
    </span>\n
    ```\n
    \n
    `Edit` &gt; `Format` &gt; `Comment Lines` works as anticipated.\n
    \n
    But if I decide I want the lines back, how do that with the same keybinding? Using `Comment Lines` again adds a second level of comments, which is what I would expect (but not what I want):\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">### a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">##echo $variable\n
    </span>\n
    ```\n
    \n
    `Edit` &gt; `Format` &gt; `Toggle Line Commentation` works and the file returns to the original state. But if you reselect the original lines and run it again, you get\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">#echo $variable\n
    </span>\n
    ```\n
    \n
    Which would obviously lead to unpredictable results.\n
    \n
    There doesn’t seem to be a way for Geany to look at the block of text and decide whether it should be *commented* or *uncommented* and act accordingly.\n
    \n
    Kate editor has this functionality in `Selection` &gt; `Toggle Comment` as do other editors I’ve encountered. If there is a mix of commented and uncommented text, it will *never* remove comments. It only removes comments when the entire block has commenting, and then it removes only 1 level of comments. Perfect. Of course if you really want to force the matter, there are the more aggressive `Comment` and `Uncomment`.\n
    \n
    Using the Geany `Toggle Line Commentation` leads to strange results, especially if you are starting with multiple levels of comments. Is there a way to duplicate the standard comment toggle in Geany? I tried to train myself to use `Comment Line(s)` and `Uncomment Lines(s)` instead of a single command but I just made a lot of mistakes where I didn’t realize there were multiple levels of comments or whatever and things became uncommented that shouldn’t have and it created a giant mess.\n
    \n
    I’m not a professional IT person, just someone who enjoys text files in their spare time. I do a lot of commenting and uncommenting trying to find out how things work. I thought it was a pretty normal thing to do. There must be a way to do it right?\n
    \n
    I recall digging around a bunch in the Geany repo/docs and it ended up that some problem I was having was a limitation of the Scintilla lexer and there wasn’t much Geany could do about it. But I am not sure if it was this issue or something else.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 9
  +favouriteCount: 17
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1699840939 {#1567
    date: 2023-11-13 03:02:19.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1629 …}
  +votes: Doctrine\ORM\PersistentCollection {#1626 …}
  +reports: Doctrine\ORM\PersistentCollection {#1625 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2411 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2465 …}
  +badges: Doctrine\ORM\PersistentCollection {#2459 …}
  +children: []
  -id: 11968
  -titleTs: "'comment':10 'editor':9 'expect':14 'geani':7 'rememb':2 'stop':5 'text':8 'toggl':11 'use':6"
  -bodyTs: "'/documentation/releasenotes/)':10 '1':262 '2.0':3 'abl':78 'accord':215 'act':214 'add':128 'aggress':281 'anticip':107 'around':425 'back':15,116 'becam':359 'block':55,201,254 'bunch':427 'code':57 'command':335 'comment':52,54,71,89,98,103,125,133,146,153,177,210,224,238,246,250,256,265,282,290,304,313,324,354,393 'configur':48 'could':455 'couldn':31 'cours':268 'creat':367 'decid':12,111,205 'didn':346 'dig':424 'doesn':188 'duplic':310 'echo':72,99,147,178 'edit':101,149 'editor':217,228 'els':471 'encount':231 'end':434 'enjoy':381 'entir':253 'especi':295 'expect':139 'figur':44 'file':65,157,383 'find':398 'follow':62 'forc':274 'format':102,150 'function':220 'geani':2,24,196,287,316,430,454 'get':175 'giant':369 'instead':331 'issu':468 'kate':19,216 'keybind':87,123 'lead':183,291 'level':131,263,302,352 'lexer':448 'like':23 'limit':444 'line':83,104,115,126,152,169,289,325,329 'look':198 'lot':341,391 'm':372 'made':339 'matter':276 'mess':370 'mistak':343 'mix':236 'much':453 'multipl':301,351 'must':414 'never':244 'normal':409 'obvious':182 'origin':161,168 'perfect':266 'person':377 'pretti':408 'problem':29,40,438 'profession':375 'proper':51 'quick':37 'quit':33 'realiz':348 'realli':271 'recal':423 'recent':5 'releas':7 'rememb':34,38 'remov':245,249,260 'repo/docs':431 'reselect':166 'result':94,186,294 'return':158 'right':421 'run':171 'say':58 'scintilla':447 'script':69 'second':130 'seem':190 'select':80,222 'shell':68 'shouldn':362 'sinc':1 'singl':334 'someon':379 'someth':470 'spare':386 'standard':312 'start':299 'state':162 'strang':293 'sure':463 'switch':14 'text':203,241,382 'thing':358,401,410 'thought':404 'time':387 'toggl':151,223,288,314 'train':320 'tri':318,396 'type':67 'uncom':212,240,284,328,360,395 'unpredict':185 'use':21,85,124,285,323 'variabl':73,100,148,179 've':230 'want':75,113,144,272 'wasn':451 'way':194,308,417 'whatev':356 'whether':206 'work':105,154,402 'would':95,138,181 'www.geany.org':9 'www.geany.org/documentation/releasenotes/)':8"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1699773978
  +visibility: "visible             "
  +apId: "https://beehaw.org/post/9470604"
  +editedAt: null
  +createdAt: DateTimeImmutable @1699704478 {#1414
    date: 2023-11-11 13:07:58.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
7 DENIED edit
App\Entity\Entry {#1566
  +user: App\Entity\User {#265 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1724 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1630 …}
  +slug: "I-remember-why-I-stopped-using-Geany-text-editor-comment"
  +title: "I remember why I stopped using Geany text editor: comment toggling not as expected"
  +url: null
  +body: """
    Since [Geany 2.0 has recently been released](https://www.geany.org/documentation/releasenotes/) I decided to switch back to it from Kate. I used to like Geany but it had some problems I couldn’t quite remember.\n
    \n
    So I quickly remembered the problem. I can’t figure out how to configure it to properly comment and comment blocks of code. Say you have the following in a file of type `shell script`:\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;"># a comment\n
    </span><span style="color:#323232;">\t</span><span style="color:#62a35c;">echo </span><span style="color:#323232;">$variable\n
    </span>\n
    ```\n
    \n
    I want to be able to select the above lines and use a keybinding to comment them out, so the result would be:\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">## a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">#echo $variable\n
    </span>\n
    ```\n
    \n
    `Edit` &gt; `Format` &gt; `Comment Lines` works as anticipated.\n
    \n
    But if I decide I want the lines back, how do that with the same keybinding? Using `Comment Lines` again adds a second level of comments, which is what I would expect (but not what I want):\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">### a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">##echo $variable\n
    </span>\n
    ```\n
    \n
    `Edit` &gt; `Format` &gt; `Toggle Line Commentation` works and the file returns to the original state. But if you reselect the original lines and run it again, you get\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">#echo $variable\n
    </span>\n
    ```\n
    \n
    Which would obviously lead to unpredictable results.\n
    \n
    There doesn’t seem to be a way for Geany to look at the block of text and decide whether it should be *commented* or *uncommented* and act accordingly.\n
    \n
    Kate editor has this functionality in `Selection` &gt; `Toggle Comment` as do other editors I’ve encountered. If there is a mix of commented and uncommented text, it will *never* remove comments. It only removes comments when the entire block has commenting, and then it removes only 1 level of comments. Perfect. Of course if you really want to force the matter, there are the more aggressive `Comment` and `Uncomment`.\n
    \n
    Using the Geany `Toggle Line Commentation` leads to strange results, especially if you are starting with multiple levels of comments. Is there a way to duplicate the standard comment toggle in Geany? I tried to train myself to use `Comment Line(s)` and `Uncomment Lines(s)` instead of a single command but I just made a lot of mistakes where I didn’t realize there were multiple levels of comments or whatever and things became uncommented that shouldn’t have and it created a giant mess.\n
    \n
    I’m not a professional IT person, just someone who enjoys text files in their spare time. I do a lot of commenting and uncommenting trying to find out how things work. I thought it was a pretty normal thing to do. There must be a way to do it right?\n
    \n
    I recall digging around a bunch in the Geany repo/docs and it ended up that some problem I was having was a limitation of the Scintilla lexer and there wasn’t much Geany could do about it. But I am not sure if it was this issue or something else.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 9
  +favouriteCount: 17
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1699840939 {#1567
    date: 2023-11-13 03:02:19.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1629 …}
  +votes: Doctrine\ORM\PersistentCollection {#1626 …}
  +reports: Doctrine\ORM\PersistentCollection {#1625 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2411 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2465 …}
  +badges: Doctrine\ORM\PersistentCollection {#2459 …}
  +children: []
  -id: 11968
  -titleTs: "'comment':10 'editor':9 'expect':14 'geani':7 'rememb':2 'stop':5 'text':8 'toggl':11 'use':6"
  -bodyTs: "'/documentation/releasenotes/)':10 '1':262 '2.0':3 'abl':78 'accord':215 'act':214 'add':128 'aggress':281 'anticip':107 'around':425 'back':15,116 'becam':359 'block':55,201,254 'bunch':427 'code':57 'command':335 'comment':52,54,71,89,98,103,125,133,146,153,177,210,224,238,246,250,256,265,282,290,304,313,324,354,393 'configur':48 'could':455 'couldn':31 'cours':268 'creat':367 'decid':12,111,205 'didn':346 'dig':424 'doesn':188 'duplic':310 'echo':72,99,147,178 'edit':101,149 'editor':217,228 'els':471 'encount':231 'end':434 'enjoy':381 'entir':253 'especi':295 'expect':139 'figur':44 'file':65,157,383 'find':398 'follow':62 'forc':274 'format':102,150 'function':220 'geani':2,24,196,287,316,430,454 'get':175 'giant':369 'instead':331 'issu':468 'kate':19,216 'keybind':87,123 'lead':183,291 'level':131,263,302,352 'lexer':448 'like':23 'limit':444 'line':83,104,115,126,152,169,289,325,329 'look':198 'lot':341,391 'm':372 'made':339 'matter':276 'mess':370 'mistak':343 'mix':236 'much':453 'multipl':301,351 'must':414 'never':244 'normal':409 'obvious':182 'origin':161,168 'perfect':266 'person':377 'pretti':408 'problem':29,40,438 'profession':375 'proper':51 'quick':37 'quit':33 'realiz':348 'realli':271 'recal':423 'recent':5 'releas':7 'rememb':34,38 'remov':245,249,260 'repo/docs':431 'reselect':166 'result':94,186,294 'return':158 'right':421 'run':171 'say':58 'scintilla':447 'script':69 'second':130 'seem':190 'select':80,222 'shell':68 'shouldn':362 'sinc':1 'singl':334 'someon':379 'someth':470 'spare':386 'standard':312 'start':299 'state':162 'strang':293 'sure':463 'switch':14 'text':203,241,382 'thing':358,401,410 'thought':404 'time':387 'toggl':151,223,288,314 'train':320 'tri':318,396 'type':67 'uncom':212,240,284,328,360,395 'unpredict':185 'use':21,85,124,285,323 'variabl':73,100,148,179 've':230 'want':75,113,144,272 'wasn':451 'way':194,308,417 'whatev':356 'whether':206 'work':105,154,402 'would':95,138,181 'www.geany.org':9 'www.geany.org/documentation/releasenotes/)':8"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1699773978
  +visibility: "visible             "
  +apId: "https://beehaw.org/post/9470604"
  +editedAt: null
  +createdAt: DateTimeImmutable @1699704478 {#1414
    date: 2023-11-11 13:07:58.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
8 DENIED moderate
App\Entity\Entry {#1566
  +user: App\Entity\User {#265 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1724 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1630 …}
  +slug: "I-remember-why-I-stopped-using-Geany-text-editor-comment"
  +title: "I remember why I stopped using Geany text editor: comment toggling not as expected"
  +url: null
  +body: """
    Since [Geany 2.0 has recently been released](https://www.geany.org/documentation/releasenotes/) I decided to switch back to it from Kate. I used to like Geany but it had some problems I couldn’t quite remember.\n
    \n
    So I quickly remembered the problem. I can’t figure out how to configure it to properly comment and comment blocks of code. Say you have the following in a file of type `shell script`:\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;"># a comment\n
    </span><span style="color:#323232;">\t</span><span style="color:#62a35c;">echo </span><span style="color:#323232;">$variable\n
    </span>\n
    ```\n
    \n
    I want to be able to select the above lines and use a keybinding to comment them out, so the result would be:\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">## a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">#echo $variable\n
    </span>\n
    ```\n
    \n
    `Edit` &gt; `Format` &gt; `Comment Lines` works as anticipated.\n
    \n
    But if I decide I want the lines back, how do that with the same keybinding? Using `Comment Lines` again adds a second level of comments, which is what I would expect (but not what I want):\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">### a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">##echo $variable\n
    </span>\n
    ```\n
    \n
    `Edit` &gt; `Format` &gt; `Toggle Line Commentation` works and the file returns to the original state. But if you reselect the original lines and run it again, you get\n
    \n
    ```\n
    \n
    <span style="color:#323232;">\t a comment\n
    </span><span style="color:#323232;">\t</span><span style="font-style:italic;color:#969896;">#echo $variable\n
    </span>\n
    ```\n
    \n
    Which would obviously lead to unpredictable results.\n
    \n
    There doesn’t seem to be a way for Geany to look at the block of text and decide whether it should be *commented* or *uncommented* and act accordingly.\n
    \n
    Kate editor has this functionality in `Selection` &gt; `Toggle Comment` as do other editors I’ve encountered. If there is a mix of commented and uncommented text, it will *never* remove comments. It only removes comments when the entire block has commenting, and then it removes only 1 level of comments. Perfect. Of course if you really want to force the matter, there are the more aggressive `Comment` and `Uncomment`.\n
    \n
    Using the Geany `Toggle Line Commentation` leads to strange results, especially if you are starting with multiple levels of comments. Is there a way to duplicate the standard comment toggle in Geany? I tried to train myself to use `Comment Line(s)` and `Uncomment Lines(s)` instead of a single command but I just made a lot of mistakes where I didn’t realize there were multiple levels of comments or whatever and things became uncommented that shouldn’t have and it created a giant mess.\n
    \n
    I’m not a professional IT person, just someone who enjoys text files in their spare time. I do a lot of commenting and uncommenting trying to find out how things work. I thought it was a pretty normal thing to do. There must be a way to do it right?\n
    \n
    I recall digging around a bunch in the Geany repo/docs and it ended up that some problem I was having was a limitation of the Scintilla lexer and there wasn’t much Geany could do about it. But I am not sure if it was this issue or something else.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 9
  +favouriteCount: 17
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1699840939 {#1567
    date: 2023-11-13 03:02:19.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1629 …}
  +votes: Doctrine\ORM\PersistentCollection {#1626 …}
  +reports: Doctrine\ORM\PersistentCollection {#1625 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2411 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2465 …}
  +badges: Doctrine\ORM\PersistentCollection {#2459 …}
  +children: []
  -id: 11968
  -titleTs: "'comment':10 'editor':9 'expect':14 'geani':7 'rememb':2 'stop':5 'text':8 'toggl':11 'use':6"
  -bodyTs: "'/documentation/releasenotes/)':10 '1':262 '2.0':3 'abl':78 'accord':215 'act':214 'add':128 'aggress':281 'anticip':107 'around':425 'back':15,116 'becam':359 'block':55,201,254 'bunch':427 'code':57 'command':335 'comment':52,54,71,89,98,103,125,133,146,153,177,210,224,238,246,250,256,265,282,290,304,313,324,354,393 'configur':48 'could':455 'couldn':31 'cours':268 'creat':367 'decid':12,111,205 'didn':346 'dig':424 'doesn':188 'duplic':310 'echo':72,99,147,178 'edit':101,149 'editor':217,228 'els':471 'encount':231 'end':434 'enjoy':381 'entir':253 'especi':295 'expect':139 'figur':44 'file':65,157,383 'find':398 'follow':62 'forc':274 'format':102,150 'function':220 'geani':2,24,196,287,316,430,454 'get':175 'giant':369 'instead':331 'issu':468 'kate':19,216 'keybind':87,123 'lead':183,291 'level':131,263,302,352 'lexer':448 'like':23 'limit':444 'line':83,104,115,126,152,169,289,325,329 'look':198 'lot':341,391 'm':372 'made':339 'matter':276 'mess':370 'mistak':343 'mix':236 'much':453 'multipl':301,351 'must':414 'never':244 'normal':409 'obvious':182 'origin':161,168 'perfect':266 'person':377 'pretti':408 'problem':29,40,438 'profession':375 'proper':51 'quick':37 'quit':33 'realiz':348 'realli':271 'recal':423 'recent':5 'releas':7 'rememb':34,38 'remov':245,249,260 'repo/docs':431 'reselect':166 'result':94,186,294 'return':158 'right':421 'run':171 'say':58 'scintilla':447 'script':69 'second':130 'seem':190 'select':80,222 'shell':68 'shouldn':362 'sinc':1 'singl':334 'someon':379 'someth':470 'spare':386 'standard':312 'start':299 'state':162 'strang':293 'sure':463 'switch':14 'text':203,241,382 'thing':358,401,410 'thought':404 'time':387 'toggl':151,223,288,314 'train':320 'tri':318,396 'type':67 'uncom':212,240,284,328,360,395 'unpredict':185 'use':21,85,124,285,323 'variabl':73,100,148,179 've':230 'want':75,113,144,272 'wasn':451 'way':194,308,417 'whatev':356 'whether':206 'work':105,154,402 'would':95,138,181 'www.geany.org':9 'www.geany.org/documentation/releasenotes/)':8"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1699773978
  +visibility: "visible             "
  +apId: "https://beehaw.org/post/9470604"
  +editedAt: null
  +createdAt: DateTimeImmutable @1699704478 {#1414
    date: 2023-11-11 13:07:58.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details