Laurent PETIT <[email protected]> writes:
> 2009/7/24 [email protected] <[email protected]>
>
> On Jul 23, 10:15 pm, Richard Newman <[email protected]> wrote:
> > > Coming from an OO background which puts a strong focus on data
> > > encapsulation,
> > > this makes me a little nervous.
> >
> > The same problem exists with OO.
>
> Not to the same extent, unless you expose all the internals of your
> classes (including fields) as public.
>
>
> Java tries hard to hide the detail, yes, but it's still possible to use
> reflection.
> So it's just (as you stated) a fact of making it easy or difficult.
>
> But you should consider that everything you cannot find in the (doc) of
> functions is not public API.
While I agree with what you say, I have a couple of problems with
relying on doc strings to document private fields. Firstly, I don't
write docs while prototyping. Secondly, docs aren't visible when
browsing code.
I've been using the convention of naming private fields with a
trailing hyphen: {:foo "public" :bar- "private"}
Here's a patch that adds syntax highlighting for this to clojure-mode.
diff --git a/clojure-mode.el b/clojure-mode.el
index 2d82ab6..7f1c28f 100644
--- a/clojure-mode.el
+++ b/clojure-mode.el
@@ -374,6 +374,8 @@ elements of a def* forms."
"\\(\\sw+\\)?" )
(1 font-lock-keyword-face)
(2 font-lock-function-name-face nil t))
+ ;; Private keywords :foo-
+ ("\\<:\\sw+-\\>" 0 font-lock-constant-face)
;; Constant values.
("\\<:\\sw+\\>" 0 font-lock-builtin-face)
;; Meta type annotation #^Type
--
jan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---