profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/bbatsov/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Bozhidar Batsov bbatsov Toptal (@toptal) Bulgaria https://metaredux.com Hacker. Emacs fanatic. Author of RuboCop, CIDER, Projectile and others. I'm not the best, but I'm pretty good. ;-)

bbatsov/clojure-style-guide 3695

A community coding style guide for the Clojure programming language

bbatsov/crux 628

A Collection of Ridiculously Useful eXtensions for Emacs

bbatsov/beamer-torino-theme 37

Torino, a pretty theme for LaTex Beamer

bbatsov/cl-99-problems 10

Solutions to the 99 Lisp problems in Common Lisp

bbatsov/cv 10

My professional CV in LaTeX

bbatsov/activerecord-extra-validators 9

Some nice additional validators for ActiveRecord

bbatsov/bbatsov.github.com 8

My personal blog

bbatsov/avy 3

Jump to things in Emacs tree-style

bbatsov/cljfmt 3

A tool for formatting Clojure code

bbatsov/blog 2

My personal blog

pull request commentclojure-emacs/refactor-nrepl

Bring hotload-dependency back

I think it’s fine to not in-line it. After all, how many projects have dependencies like pomegranate? That would make sideloading refactor-nrepl a bit harder, though.

On Fri, Sep 17, 2021, at 12:43 PM, Lars Andersen wrote:

What are the problems with Pomegranate?

None, really. It just interacts badly with the source rewriting tool we use to prevent conflicts on the classpath.

Thanks for confirming that we are on the right track!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/clojure-emacs/refactor-nrepl/pull/301#issuecomment-921659988, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAZLSS5SLSKW76Q44K5N43UCMETJANCNFSM47JM7HBA.

expez

comment created time in 18 hours

push eventbbatsov/projectile

Bozhidar Batsov

commit sha ca89722f947710221d18c1b8e27b2a5811da176e

[Fix #1710] Improve the documentation of text search commands

view details

push time in 2 days

issue closedbbatsov/projectile

You make it look like I need `<prefix> s g` to use rg or ag?

Grep (search for text/regexp) in project (kbd:[s-p s g]) (grep alternatives like ag, pt and rg are also supported)

https://github.com/bbatsov/projectile/blob/v2.5.0/doc/modules/ROOT/pages/usage.adoc#basic-usage

Took me a while to figure out.

On a side note, do you really support pt? At first glance, it doesn't look so.

closed time in 2 days

x-yuri

push eventbbatsov/projectile

Bozhidar Batsov

commit sha 54b918d5fab16515e3d5a628eea2d3e36eb6c912

Tweak some wording

view details

push time in 2 days

issue commentbbatsov/projectile

You make it look like I need `<prefix> s g` to use rg or ag?

You make it look like I need <prefix> s g to use rg or ag?

Ah, got it. I didn't pay enough attention to the title. Yeah, I can agree that's a bit confusing. I'll reword it.

x-yuri

comment created time in 2 days

delete branch clojure-emacs/refactor-nrepl

delete branch : no-lazy-pmap

delete time in 2 days

pull request commentclojure-emacs/refactor-nrepl

Avoid a lazy `pmap`ping

Thanks!

vemv

comment created time in 2 days

push eventclojure-emacs/refactor-nrepl

vemv

commit sha eb77344780482e4d9a80c4b6124a7d3937055133

Avoid a lazy `pmap`ping

view details

push time in 2 days

PR merged clojure-emacs/refactor-nrepl

Avoid a lazy `pmap`ping

Ensures pmap work as intended

I verified that no other places needed a fixing.

+3 -1

0 comment

1 changed file

vemv

pr closed time in 2 days

PullRequestReviewEvent

Pull request review commentclojure-emacs/clj-refactor.el

Introduce `completable-for-cljr-slash?`

 default: &default-steps     - run: make elpa     - run: emacs --version     - run: cask --version+    - run: make unit

I think a target like unit-tests would be better here. make test should probably run all tests and there should be a separate make target for the integration tests.

vemv

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentclojure-emacs/clj-refactor.el

Introduce `completable-for-cljr-slash?`

 the alias in the project."     (backward-sexp 1)     (looking-at-p "[-+0-9]"))) +(defun completable-for-cljr-slash? (sym)+  (when sym+    (or+     ;; vanilla symbols, maybe prefixed by ^, :: or ^::+     (not (null (string-match-p "^\\^?\\(::\\)?\\([a-zA-Z]+[a-zA-Z0-9\\-]*\\)+\\(\\.?[a-zA-Z]+[a-zA-Z0-9\\-]*\\)*$" sym)))

I can live with this, it just seems quite verbose.

vemv

comment created time in 2 days

PullRequestReviewEvent

issue commentbbatsov/projectile

You make it look like I need `<prefix> s g` to use rg or ag?

Not directly - see https://github.com/bbatsov/projectile/issues/355

Took me a while to figure out.

What exactly was confusing to you?

x-yuri

comment created time in 2 days

issue commentrubocop/rubocop

Inconsistent cop names `Lint/DisjunctiveAssignmentInConstructor` and `Lint/OrAssignmentToConstant`

Yep, this will have to wait unless we figure out a way to be able to have a primary cop name and some alias for the sake of not breaking user configuration when renaming stuff. I guess we should start some list of all the cops we'd like to rename for one reason or another.

dvandersluis

comment created time in 2 days

issue commentrubocop/rubocop

Lint/AmbiguousOperatorPrecedence configuration

@januszm There's never any ambiguity with respect to operator precedence for Ruby itself. We used the word in the sense that there's potential ambiguity for the readers of the code (at the very least they have to read the code more carefully). Parentheses eliminate this.

pyromaniac

comment created time in 2 days

pull request commentrubocop/rubocop

[Fix #8327] Add new cop `Style/SelectByRegexp`.

I think it's fine to suggest this on all supported Ruby versions with some disclaimer in the docs. It's OK for style cops to suggest something slower, but more readable.

dvandersluis

comment created time in 2 days

push eventrubocop/rubocop

Koichi ITO

commit sha d1cf26ab7edbb90908c8b948e6897215b02784ce

[Fix #10084] Add new `Lint/RequireRelativeSelfPath` cop Fixes #10084. This PR adds new `Lint/RequireRelativeSelfPath` cop. It checks for uses of `require_relative` with self file path argument. ```ruby # bad # foo.rb require_relative 'foo' require_relative 'bar' # good # foo.rb require_relative 'bar' ```

view details

push time in 2 days

pull request commentrubocop/rubocop

[Fix #10084] Add new `Lint/RequireRelativeSelfPath` cop

Nicely done!

koic

comment created time in 2 days

PR merged rubocop/rubocop

[Fix #10084] Add new `Lint/RequireRelativeSelfPath` cop

Fixes #10084.

This PR adds new Lint/RequireRelativeSelfPath cop. It checks for uses of require_relative with self file path argument.

# bad

# foo.rb
require_relative 'foo'
require_relative 'bar'

# good

# foo.rb
require_relative 'bar'

Before submitting the PR make sure the following are checked:

  • [x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
  • [x] Wrote good commit messages.
  • [x] Commit message starts with [Fix #issue-number] (if the related issue exists).
  • [x] Feature branch is up-to-date with master (if not - rebase it).
  • [x] Squashed related commits together.
  • [x] Added tests.
  • [x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
  • [x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.
+91 -0

1 comment

5 changed files

koic

pr closed time in 2 days

issue closedrubocop/rubocop

Cop idea: mark self-`require_relative` as bad code

Is your feature request related to a problem? Please describe.

This code in file my_class.rb

# frozen_string_literal: true

require_relative 'my_class'

# Class which puts foo
class MyClass
  def foo
    puts 'foo'
  end
end

Describe the solution you'd like

require_relative 'my_class' is completely useless (require itself) - rubocop should mark it as bad smell

Additional context

# rubocop -V
1.21.0 (using Parser 3.0.2.0, rubocop-ast 1.11.0, running on ruby 3.0.2 x86_64-linux)

closed time in 2 days

ShockwaveNN

pull request commentrubocop/rubocop

`Lint/BooleanSymbol` should be marked as `SafeAutoCorrect: false` rather than `Safe: false`

This deserves a changelog entry IMO.

dvandersluis

comment created time in 2 days

issue commentclojure-emacs/cider

ClassLoader streamlining and composability

This was the comment from Chas I was thinking about - https://github.com/nrepl/nrepl/issues/8#issuecomment-342284589

plexus

comment created time in 2 days

issue commentclojure-emacs/cider

ClassLoader streamlining and composability

clojure.main/repl adds a new DynamicClassLoader to the stack on every invocation, this is a long known issue. It really should check first if there is already a DynamicClassLoader as the current or an ancestor of the context classloader, and if not refrain from doing anything. I'm not sure if there's been an honest attempt to get something like this upstream, but I think we can start by making our own version of clojure.main/repl. I checked and there aren't too many private functions in there so I think we can copy just this function and make the necessary changes. This won't make a big difference in itself, but it will make it much easier to inspect and debug anything related to the classloader.

Originally nREPL used its own REPL implementation to avoid problems like this one. I recall that after adopting clojure.main/repl Chas regretted this decision, but as clojure.main/repl more or less got the job done we never spent much time thinking about trying to improve it upstream or replacing it.

plexus

comment created time in 2 days

issue commentbbatsov/prelude

rainbow-mode preventing proper startup after initial install

It's not something we can fix in Prelude, but I guess we can suggest this workaround in our documentation. I've noticed that often people run into issues with Emacs's gpg keys.

strickvl

comment created time in 3 days

issue commentbbatsov/prelude

Interaction between prelude, which-mode, lsp and typescript mode causes big slow downs.

I am filing a bug report against Prelude, LSP, and typescript because there is some interaction that is slowing things down. It looks like LSP is primarily responsible for the slowdown.

It seems to me that this problem has to be fixed elsewhere, as Prelude simply bundles the upstream packages. (unless it turns out it's some issue with our default configuration)

paddymul

comment created time in 3 days

issue commentbbatsov/prelude

Error during first run: File error: Creating pipe, Too many open files

Perhaps you've encountered some issue with the dev version of Emacs? I can't think of anything that might result in this error.

rofrol

comment created time in 3 days

pull request commentbbatsov/prelude

Enable proced on Darwin for Emacs >= 26.1

Thanks!

jobor

comment created time in 3 days

push eventbbatsov/prelude

Joerg Bornemann

commit sha d143847bc321342ddb182c073df24f2b01e2d317

Enable proced on Darwin too Proced works on Darwin since Emacs 26.1. See Emacs bug #16579. Remove the version check alltogether, because it is assumed that very few people are using older Emacsen at this point.

view details

push time in 3 days